闲社服务运行正常AI智能体自动化平台
l

本地邮件服务器

技能标识:local-mail-server

本地邮件服务器系统,基于 Stalwart Mail Server + Brevo 中继 + VPS 中继。支持完整的邮件收发功能,适用于无公网 IP 环境。触发词:邮件服务器、email、imap、smtp、stalwart、brevo、vps relay。

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

本地邮件服务器

本地邮件服务器(无公网 IP 方案)

基于 Stalwart Mail Server 的本地邮件系统,配合 Brevo 发件中继和 VPS 收件中继,实现完整的邮件收发功能。

适用场景:家庭网络、运营商 NAT 环境、无公网 IP

架构概览

┌─────────────────────────────────────────────────────────────────┐
│ 本地服务器 (Mac/Linux) │
│ │
│ Webmail/IMAP客户端 ──IMAP──► Stalwart ──Brevo──► 外部收件人 │
│ │ │ │
│ └── 显示/管理邮件 └── 存储/转发邮件 │
└─────────────────────────────────────────────────────────────────┘
▲
│ Tailscale VPN (私有网络 IP)
│
┌─────────────┴───────────────────────────────────────────────────┐
│ VPS (公网 IP) │
│ │
│ Postfix 中继 ──► DKIM 验证 ──► Tailscale ──► 本地服务器 │
│ ▲ │
│ │ │
│ 外部邮件 (Gmail/QQ Mail 等) │
└─────────────────────────────────────────────────────────────────┘

收件: 外部发件人 → DNS MX → VPS Postfix → Tailscale VPN → 本地 Stalwart
发件: Webmail → Stalwart (SMTP) → Brevo 中继 → 外部收件人

系统要求

本地服务器

  • - macOS / Linux
  • Stalwart Mail Server 0.15.5+
  • Tailscale(用于 VPS 通信)

VPS

  • - 任意云服务商(Vultr/DigitalOcean/腾讯云等)
  • Ubuntu 24.04 LTS
  • 公网 IP
  • 最小配置即可(1核 512MB 内存)

外部服务

  • - Brevo 账户(免费 300 封/天)
  • Cloudflare DNS(管理域名)
  • Tailscale 账户(免费)

快速开始

1. 安装 Stalwart

bash

macOS ARM64


curl -L -o stalwart.tar.gz https://github.com/stalwartlabs/stalwart/releases/download/v0.15.5/stalwart-aarch64-apple-darwin.tar.gz

Linux x86_64

curl -L -o stalwart.tar.gz https://github.com/stalwartlabs/stalwart/releases/download/v0.15.5/stalwart-x86_64-unknown-linux-gnu.tar.gz

tar -xzf stalwart.tar.gz
chmod +x stalwart
./stalwart -c config/config.toml

2. 配置 VPS 中继

bash

在 VPS 上安装 Postfix 和 OpenDKIM


sudo apt update
sudo apt install -y postfix opendkim opendkim-tools

配置 Postfix 转发到本地服务器

echo yourdomain.com smtp:[LOCALTAILSCALEIP]:25 | sudo tee /etc/postfix/transport sudo postmap /etc/postfix/transport

3. 配置 DNS

在 Cloudflare DNS 添加:

类型 名称 内容
───────────────────────────────────────────────────────────
MX @ mail.yourdomain.com (优先级 10)
A mail YOURVPSIP (仅 DNS,灰色云朵)
TXT @ v=spf1 ip4:YOURVPSIP include:spf.brevo.com ~all
TXT _dmarc v=DMARC1; p=none; rua=mailto:rua@dmarc.brevo.com
TXT mail._domainkey DKIM 公钥

配置详解

Stalwart 配置 (config/config.toml)

toml

服务器基本配置


server.hostname = mail.yourdomain.com
server.listener.smtp.bind = [[::]:25]
server.listener.imap.bind = [[::]:143]
server.listener.submission.bind = [[::]:587]

Brevo 发件中继

[relay.brevo] address = smtp-relay.brevo.com port = 587 protocol = smtp

[relay.brevo.auth]
type = plain
username = YOURBREVOLOGIN
password = YOURBREVOSMTP_KEY

默认使用 Brevo 中继

queue.outbound.next-hop = brevo

Postfix 配置 (VPS)

/etc/postfix/main.cf:
ini
myhostname = relay.yourdomain.com
mydomain = relay.yourdomain.com
mydestination = $myhostname, localhost
mynetworks = 127.0.0.0/8, 100.0.0.0/8 # 包含 Tailscale 网段
inet_interfaces = all
smtpcnameoverrides_servername = no
disablednslookups = yes
transport_maps = hash:/etc/postfix/transport

/etc/postfix/transport:

yourdomain.com smtp:[YOURLOCALTAILSCALE_IP]:25

OpenDKIM 配置 (VPS)

/etc/opendkim.conf:
ini
AutoRestart Yes
Syslog yes
Canonicalization relaxed/simple
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Socket inet:12301@localhost
SignatureAlgorithm rsa-sha256

生成 DKIM 密钥:
bash
sudo mkdir -p /etc/opendkim/keys/yourdomain.com
sudo opendkim-genkey -D /etc/opendkim/keys/yourdomain.com -d yourdomain.com -s mail
sudo chown -R opendkim:opendkim /etc/opendkim/keys

用户管理

创建用户

通过 Stalwart Web UI (http://localhost:8080) 或 API:

bash
curl -X POST http://localhost:8080/api/principal \
-u admin:admin123 \
-H Content-Type: application/json \
-d {
type: individual,
name: username,
emails: [username@yourdomain.com],
secrets: [SecurePassword123],
enabledPermissions: [
email-receive,
authenticate,
email-send,
imap-authenticate,
imap-enable,
imap-list,
imap-select,
imap-fetch
]
}

认证说明

⚠️ 重要:Stalwart 认证使用用户名(如 username),而不是完整邮箱地址。

正确: 用户名 = username
错误: 用户名 = username@yourdomain.com

Webmail 集成

Nextcloud Mail 配置

配置项值
IMAP 主机127.0.0.1
IMAP 端口
143 | | IMAP 加密 | STARTTLS | | SMTP 主机 | 127.0.0.1 | | SMTP 端口 | 587 | | SMTP 加密 | STARTTLS | | 认证用户名 | 用户名(不是邮箱) |

Nextcloud 配置命令

bash
cd /path/to/nextcloud
php occ config:system:set allowlocalremote_servers --value=true
php occ config:system:set app.mail.verify-tls-peer --value=false --type=boolean

端口说明

端口服务说明
25SMTP接收邮件(VPS 开放,本地可选)
587
SMTP | 发送邮件(STARTTLS) | | 143 | IMAP | 邮件读取(STARTTLS) | | 465 | SMTPS | 发送邮件 SSL(可选) | | 993 | IMAPS | 邮件读取 SSL(可选) | | 8080 | HTTP | Web 管理界面(仅本地) |

故障排除

邮件无法接收

  1. 1. 检查 VPS Postfix 日志:sudo tail -f /var/log/mail.log
  2. 确认 DNS MX 记录指向 VPS IP
  3. 确认 Tailscale 连接正常
  4. 检查 VPS 防火墙是否开放 25 端口

邮件进入垃圾箱

  1. 1. 确认 SPF 记录包含 VPS IP 和 Brevo
  2. 确认

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 local-mail-server-1776271531 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 local-mail-server-1776271531 技能

通过命令行安装

skillhub install local-mail-server-1776271531

下载

⬇ 下载 local-mail-server v1.0.0(免费)

文件大小: 4.46 KB | 发布时间: 2026-4-16 17:04

v1.0.0 最新 2026-4-16 17:04
First release
返回顶部