Stalwart:现代化的全栈邮件与协作服务器
Stalwart 是一款专为现代互联网需求设计的开源邮件与协作服务器,采用 Rust 语言编写,以其极致的高性能、安全性和"全栈一体化"架构在 2026 年的自托管社区中占据领先地位。该项目由 Stalwart Labs 维护,经过四年的持续开发,现已宣布功能完备(feature complete),正在为里程碑式的 1.0 版本发布做最后准备。
Stalwart 的设计理念体现在一句非官方座右铭中:"Aut Rust aut nihil"(要么 Rust,要么什么都没有)。这种对技术纯粹性的坚持,使其成为替代传统 Postfix/Dovecot 复杂组合的首选方案。
🔧 核心特性详解
📨 1. 全协议支持与 JMAP 领先
除了传统的 IMAP、SMTP 和 POP3,Stalwart 完整支持 JMAP 协议。JMAP 相比传统协议同步更快、能耗更低,是现代移动端和 Web 邮件应用的理想选择。
🔍 深入理解 JMAP 协议优势:
JMAP(JSON Meta Application Protocol)是由 Fastmail 开发、于 2019 年被 IETF 标准化(RFC 8620 & RFC 8621)的现代邮件协议。相比 IMAP,JMAP 在以下方面具有显著优势:
| 特性对比 | IMAP | JMAP |
|---|---|---|
| 数据格式 | 自定义文本协议 | JSON over HTTP |
| 连接模式 | 需要持久化 TCP 连接 | 无状态 HTTP 请求 |
| 批量操作 | 每个操作需单独请求 | 单次请求可包含多个操作 |
| 实时推送 | 需要 IDLE 扩展轮询 | 原生 Push 通知支持 |
| 移动端优化 | 资源消耗大、耗电 | 低功耗、适合间歇连接 |
| 开发友好度 | 需要自定义解析器 | 标准 JSON,全语言支持 |
| 安全机制 | 多种历史扩展 | HTTPS/WSS + OAuth 2.0/OIDC |
📱 为什么 JMAP 对移动设备至关重要?
传统 IMAP 协议设计于互联网早期,假设用户拥有稳定的持续连接。然而,现代移动设备面临的是间歇性网络环境——WiFi 切换、蜂窝网络波动等。IMAP 的 IDLE 扩展需要维持持续的 TCP 连接来接收新邮件通知,这在移动端会导致:
- 电池快速消耗
- 网络切换时的同步中断
- 需要频繁重建连接状态
JMAP 的无状态设计完美契合现代推送通知架构,客户端可以:
- 在收到推送后按需发起请求
- 单次请求完成多项操作(如标记已读、归档、删除)
- 无需维护持久连接,大幅降低能耗
📊 2025 年 JMAP 生态现状:
目前支持 JMAP 的主要服务和客户端包括:
- Fastmail(JMAP 协议的发明者,生产环境运行)
- Cyrus IMAP(JMAP 支持)
- Apache James(支持 JMAP 邮件和提交)
- Stalwart Mail Server(以 JMAP 为核心构建)
- Thunderbird(iOS 版已支持,桌面版正在推进)
🗓️ 2. 不仅是邮件,更是协作中心
到 2026 年,Stalwart 已不再仅仅是一个邮件服务器。它原生集成了 CalDAV(日历)、CardDAV(联系人)和 WebDAV(文件存储)支持,提供了一套完整的开源协作解决方案。
🏆 JMAP 协作协议全球首发:
经过四年开发,Stalwart 成为全球首个完整支持整个 JMAP 协作协议家族的服务器,包括:
| 协议 | 传统方案 | JMAP 替代方案 | Stalwart 支持状态 |
|---|---|---|---|
| 日历同步 | CalDAV | JMAP for Calendars | ✅ 完整支持 |
| 联系人同步 | CardDAV | JMAP for Contacts | ✅ 完整支持 |
| 文件存储 | WebDAV | JMAP for File Storage | ✅ 完整支持 |
| 权限共享 | WebDAV ACL | JMAP Sharing | ✅ 完整支持 |
💡 协作功能亮点:
- 📅 组日历与共享日历:支持多用户协作管理日程,适合团队和家庭使用
- 📒 共享通讯录:团队成员可共享联系人信息
- 📁 共享文件夹:支持用户、群组和共享文件空间,具备细粒度权限控制
- 🔐 灵活的权限管理:同时支持 JMAP Sharing 扩展和 WebDAV ACL,兼容各类 CalDAV/CardDAV 客户端
- 🌍 CalDAV 调度支持:v0.13.x 版本新增了加泰罗尼亚语等多语言支持
🤖 3. AI 驱动的安全防御
Stalwart Enterprise 版本引入了 AI 垃圾邮件分类和高级钓鱼检测功能,支持集成 OpenAI 或 Anthropic 等大模型,为企业通讯提供智能防护。
🔬 LLM 分类器技术细节:
Stalwart v0.10.3 起引入的 AI 模型支持是企业版的核心功能之一(同时对 GitHub 和 OpenCollective 赞助者开放)。该功能具有以下特点:
🔗 支持的 AI 提供商:
- OpenAI(GPT 系列模型)
- Anthropic(Claude 系列模型)
- 任何提供 OpenAI 兼容 API 的服务
- 自托管大模型(如 Llama、Mistral 等)
📋 邮件分类工作流程:
LLM 分类器通过向 AI 模型发送可自定义的提示词(Prompt)以及邮件的主题和正文来工作。默认提示词会指导 AI 将邮件分为四类:
- 🚫 Unsolicited(未经请求的垃圾邮件)
- 📢 Commercial(商业推广邮件)
- ⚠️ Harmful(有害/钓鱼邮件)
- ✅ Legitimate(正常邮件)
⚙️ Sieve 脚本集成:
Stalwart 扩展了 Sieve 脚本语言,引入了 llm_prompt 函数,允许管理员和用户直接在邮件处理规则中调用 AI 模型进行分析。这为实现复杂的智能邮件处理流程提供了极大的灵活性。
💰 成本考量:
对于使用 OpenAI 或 Anthropic 云服务的用户,主要考量从性能转向了成本——这些提供商通常按处理的 Token 数量收费。由于每封邮件都需要传递给 AI 模型进行分析,邮件长度直接影响每次请求的 Token 消耗。建议企业根据邮件流量合理规划预算,或考虑部署自托管模型以降低长期成本。
🛡️ 4. 极致安全性与 Rust 驱动
利用 Rust 的内存安全特性,Stalwart 彻底告别了 C 语言时代常见的缓冲区溢出漏洞。它内置了 DMARC、DKIM、SPF 和 ARC 验证,并支持自动配置安全默认值。
📜 安全审计历史与透明度:
Stalwart 已通过两次独立安全审计,展现了其对安全性的严肃承诺:
🔍 第一次审计(2023 年 10 月):
- 审计结果:未发现任何漏洞或不安全代码
- 审计结论确认了 Stalwart 作为安全可靠的开源邮件服务器的地位
🔍 第二次审计(2025 年 9 月 9 日至 25 日):
- 审计版本:v0.13.2
- 审计机构:Radically Open Security(专业开源安全审计机构)
- 资金来源:NLNet 基金会资助
⚠️ 发现的漏洞及响应:
| CVE 编号 | 严重程度 | 描述 | 修复时间 |
|---|---|---|---|
| CVE-2025-59045 | 高危 | CalDAV REPORT 请求导致的内存耗尽 DoS | 4 小时内 |
| CVE-2025-61600 | 高危 | 相关 DoS 漏洞 | 4 小时内 |
✅ 两个高危漏洞均在披露后 4 小时内修复,补丁随 v0.13.3 和 v0.13.4 版本发布。这种快速响应能力体现了 Stalwart 团队对安全问题的高度重视。
📝 审计总结:
最终报告赞扬 Stalwart 的代码库"健壮、架构良好、模块清晰划分",Rust 语言确保了内存安全,整体设计体现了"攻击者意识"的安全原则。
🔐 内置安全机制一览:
| 安全机制 | 用途说明 |
|---|---|
| DMARC | 基于域名的邮件认证、报告和一致性 |
| DKIM | 域名密钥识别邮件签名 |
| SPF | 发件人策略框架验证 |
| ARC | 认证接收链(支持邮件转发场景) |
| DANE | 基于 DNS 的命名实体认证 |
| MTA-STS | MTA 严格传输安全 |
| SMTP TLS 报告 | TLS 连接状态报告机制 |
☁️ 5. 云原生与无缝扩展
Stalwart 支持从单机 SQLite 部署无缝扩展至支持数百万用户的分布式集群,后端可对接 PostgreSQL、FoundationDB 或 S3 兼容的对象存储。
🏗️ 模块化存储架构详解:
Stalwart 采用模块化存储架构,将不同类型的数据分离到四个独立的存储层,每个组件可根据规模和需求独立优化:
| 存储层 | 用途 | 推荐后端 |
|---|---|---|
| Data Store | 用户设置、文件夹层级、邮件元数据、标记、访问控制 | FoundationDB / PostgreSQL |
| Blob Store | 邮件正文、附件、日历数据等大对象 | S3 兼容存储 |
| In-Memory Store | 速率限制、会话跟踪、投递状态、节点协调 | Redis |
| Full-text Search | 邮件内容索引和关键词搜索 | Elasticsearch / Meilisearch |
📊 按规模选择后端策略:
🏠 小型部署(个人/家庭/小团队):
- 数据库:SQLite(零配置,开箱即用)
- 存储:本地文件系统
- 特点:单一二进制文件,极简部署
🏢 中型部署(中小企业):
- 数据库:PostgreSQL 或 MySQL
- 存储:本地或 S3 兼容存储
- 全文搜索:数据库内置功能(v0.12+ 改进)
- 特点:利用 PostgreSQL/MySQL 的内置全文搜索,降低架构复杂度
🏭 大型分布式部署(企业级):
- 数据库:FoundationDB(推荐)
- 对象存储:S3 兼容服务
- 缓存层:Redis
- 全文搜索:Elasticsearch 或 Meilisearch
- 特点:支持多节点集群、自动分片、多区域部署、数千节点水平扩展
🔄 集群协调机制(v0.12 新增):
Stalwart v0.12 引入了可适配的集群行为:
- 小型部署:使用 Eclipse Zenoh(轻量级点对点 pub/sub 协议)
- 大型基础设施:可选择 Apache Kafka、Redpanda、NATS 或 Redis 进行节点间协调、状态同步和负载分发
🐳 容器编排支持:
- Kubernetes
- Apache Mesos
- Docker Swarm
🚀 为什么Stalwart值得关注
随着用户对隐私和主权的重视,Stalwart 凭借其单一二进制文件的极简部署方式和对现代标准(如 2026 年正在开发的 Rust + Dioxus 架构 Webmail)的追求,成为了替代传统 Postfix/Dovecot 复杂组合的最佳方案。
📋 详细对比:Stalwart vs 传统方案
| 对比维度 | 传统方案 (Postfix + Dovecot) | Stalwart |
|---|---|---|
| 组件数量 | 多个独立组件(Postfix、Dovecot、OpenDKIM、RSpam、数据库等) | 单一二进制文件 |
| 配置复杂度 | 各组件独立配置,需要"粘合"集成 | 统一配置,提供 Web 管理界面 |
| 协议支持 | SMTP + IMAP/POP3(需额外组件) | JMAP + IMAP + SMTP + POP3 + CalDAV + CardDAV + WebDAV |
| 语言 | C/C++(Postfix/Dovecot) | Rust(内存安全) |
| 日历/联系人 | 需额外部署(如 Radicale) | 原生集成 |
| 学习曲线 | 陡峭,多年经验积累 | 相对平缓,文档完善 |
| 现代协议 | JMAP 需额外方案 | JMAP 为核心设计 |
👥 社区反馈摘要:
- "Stalwart 非常简单,完胜 Dovecot 和 Postfix 的部署体验"
- "如果你有邮件服务器和 Linux 经验,Stalwart 是最佳选择,没有其他方案能提供如此细粒度的控制和丰富的功能"
- "Stalwart Mail 给我带来的麻烦比其他邮件解决方案都少"
- Privacy Guides 官方使用 Stalwart 作为其内部邮件系统
⚠️ 需要考虑的因素:
- Stalwart 目前由单一维护者开发(Mauro De Gennaro),部分用户对此表示担忧
- 作为较新的项目,生产环境验证时间相对较短
- 某些用户报告了与 RocksDB 相关的数据库损坏问题(建议使用 FoundationDB 或 PostgreSQL)
- 功能丰富意味着需要理解更多现代概念
🔮 2026 年路线图与未来展望
📅 版本 1.0 里程碑:
Stalwart 已宣布功能完备(feature complete),所有计划支持的核心功能和开放标准协议均已就位。下一个重大里程碑是:
- 最终确定数据库 Schema
- 性能优化
- 发布 1.0 正式版
🌐 Webmail 开发计划:
1.0 版本发布后(预计 2026 年),团队将启动 Webmail 开发:
- 技术栈:Rust + Dioxus 框架
- 架构:单页应用(SPA)
- 团队计划直接为 Dioxus 生态贡献代码,扩展可用组件
🎤 FOSDEM 2026 重磅演讲:
Stalwart 将出席 2026 年 1 月 31 日至 2 月 1 日在比利时布鲁塞尔举行的 FOSDEM 2026,发表题为《Stalwart:开源能做到 Gmail 级别的邮件吗?》的演讲。演讲将涵盖:
- 📊 以 1,024 节点集群为实例的架构设计
- 💾 跨集群存储和索引 PB 级邮件的策略
- 🛡️ 大规模垃圾邮件和钓鱼过滤
- 📮 分布式 MTA 队列管理
- ⚖️ IMAP、JMAP 和 SMTP 流量的负载均衡
- 🔄 集群协调、编排和自动扩缩容
- 🏭 Apple iCloud 等厂商使用的类似架构模式
📧 临时 Webmail 解决方案:
在官方 Webmail 开发完成前,推荐使用以下兼容方案:
- Roundcube(经典选择)
- SnappyMail(轻量快速)
- SoGo(功能丰富)
- TMail Web(支持 JMAP 协议)
🛠️ 快速开始
📚 官方资源
| 资源类型 | 链接 |
|---|---|
| 官方文档 | Stalwart Documentation |
| GitHub 仓库 | stalwartlabs/stalwart |
| 官方博客 | Stalwart Labs Blog |
| 发布日志 | Releases |
| FOSDEM 演讲 | Gmail-scale Email Talk |
📋 版本选择指南
| 版本 | 适用场景 | 授权协议 |
|---|---|---|
| Community Edition | 个人、开源项目、小型团队 | AGPL-3.0 |
| Enterprise Edition | 企业生产环境、需要 AI 功能 | 商业授权 |
| Sponsor Benefits | GitHub/OpenCollective 赞助者 | 开放企业功能 |
⚡ 最小化部署示例
单机部署(SQLite 后端):
# 下载最新版本 curl -LO https://github.com/stalwartlabs/stalwart/releases/latest/download/stalwart-linux-x86_64.tar.gz
# 解压并运行 tar -xzf stalwart-linux-x86_64.tar.gz
./stalwart --init📌 建议:生产环境请使用 v0.13.4 或更高版本,以确保包含最新的安全修复。
📖 课程总结
Stalwart 代表了邮件服务器领域的范式转变:从传统的多组件拼接架构,到现代的全栈一体化解决方案。 它的核心价值主张包括:
- 🔒 安全优先:Rust 语言 + 双次安全审计 + 4 小时漏洞响应
- 📱 现代协议:JMAP 为核心,完美适配移动互联网时代
- 🗓️ 完整协作:邮件 + 日历 + 联系人 + 文件,一个服务器搞定
- 🤖 AI 增强:企业版集成主流 LLM 提供商
- ☁️ 弹性架构:从 SQLite 单机到 1,024 节点集群的无缝扩展
- 🧩 极简运维:单一二进制 + Web 管理界面
对于 2026 年希望掌控自己数据主权的个人和组织而言,Stalwart 提供了一条清晰的自托管路径——不再需要在功能、安全性和易用性之间做出妥协。
📚 参考资料与进一步阅读: