月成本 $0, 运维时间接近零, 完整控制自己的邮件. 但这条路不适合所有人
"你疯了吗, 2024 年还自建邮件服务器?" -- 这是我在 Reddit 上看到最多的反应.
这篇不是教程, 而是聊我做这个决策的完整思考过程, 以及一年多运行下来的真实体验.
为什么自建
多个域名的邮箱, 主要接收通知, 不需要团队协作. 如果每个域名都配 Google Workspace $7/月, 加起来不少.
更重要的是一个原则: 能自己控制的基础设施, 尽量自己控制.
为什么是 Stalwart
Stalwart Mail Server: Rust 写的全功能邮件服务器, 一个二进制包含 SMTP + IMAP + JMAP.
优势: 单容器 Docker 部署, 内存占用约 50-100MB, 配置统一, 支持 JMAP.
架构: Stalwart + AWS SES
单独跑 Stalwart 可以收发邮件, 但直接从 VPS 发邮件有 IP 信誉问题. 解决方案: 出站邮件走 AWS SES 中继.
收信: 外部邮件 -> MX 记录 -> Stalwart 端口 25 接收 -> IMAP/JMAP 访问
发信: 客户端 -> SMTP 提交到 Stalwart -> AWS SES relay -> 收件人
关键 DNS 配置: MX, SPF (包含 VPS IP + SES), DKIM, DMARC, rDNS.
一年多运行体验
- 稳定性: Stalwart 没有崩溃过一次, Docker 自动重启
- 运维: 接近零, 全年不超过 2 小时
- 可达性: Gmail, Outlook, iCloud, QQ 邮箱全部正常收到, DMARC 通过率 100%
- 月成本: $0 (SES 免费额度内)
适合谁
适合: 有 Linux/Docker 能力, 邮件量不大, 多域名, 在意控制权.
不适合: 团队协作依赖 Google/Microsoft 生态, 邮件是核心业务, 没时间学 DNS 配置.
成本对比
Google Workspace | $7/域/用户 | 无限 | 零 | 团队协作 |
Microsoft 365 | $6/域/用户 | 无限 | 零 | Office 生态 |
Zoho Mail | 免费 (1域) | 1-5 | 零 | 预算极低 |
Stalwart + SES | $0 | 无限 | 极低 | 技术型独立开发者 |
独立开发者最重要的心态: 先用最便宜的方案跑起来, 遇到瓶颈再升级.