Stalwart:现代化的全栈邮件与协作服务器
-
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 后端):
bash# 下载最新版本 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 提供了一条清晰的自托管路径——不再需要在功能、安全性和易用性之间做出妥协。
📚 参考资料与进一步阅读:
歡迎留言回复交流。
Log in to reply.