技能标识:local-mail-server
本地邮件服务器系统,基于 Stalwart Mail Server + Brevo 中继 + VPS 中继。支持完整的邮件收发功能,适用于无公网 IP 环境。触发词:邮件服务器、email、imap、smtp、stalwart、brevo、vps relay。
基于 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 中继 → 外部收件人
bash
tar -xzf stalwart.tar.gz
chmod +x stalwart
./stalwart -c config/config.toml
bash
在 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 公钥
toml
[relay.brevo.auth]
type = plain
username = YOURBREVOLOGIN
password = YOURBREVOSMTP_KEY
/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
/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
| 配置项 | 值 |
|---|---|
| IMAP 主机 | 127.0.0.1 |
| IMAP 端口 |
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
| 端口 | 服务 | 说明 |
|---|---|---|
| 25 | SMTP | 接收邮件(VPS 开放,本地可选) |
| 587 |
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 local-mail-server-1776271531 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 local-mail-server-1776271531 技能
skillhub install local-mail-server-1776271531
文件大小: 4.46 KB | 发布时间: 2026-4-16 17:04