Decentralization? We're still early!

Stalwart:现代化的全栈邮件与协作服务器

  • Stalwart:现代化的全栈邮件与协作服务器

    發布人 Brave 2026-01-19 00:35

    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 在以下方面具有显著优势:

    特性对比IMAPJMAP
    数据格式自定义文本协议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 支持状态
    日历同步CalDAVJMAP for Calendars✅ 完整支持
    联系人同步CardDAVJMAP for Contacts✅ 完整支持
    文件存储WebDAVJMAP for File Storage✅ 完整支持
    权限共享WebDAV ACLJMAP 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 将邮件分为四类:

    1. 🚫 Unsolicited(未经请求的垃圾邮件)
    2. 📢 Commercial(商业推广邮件)
    3. ⚠️ Harmful(有害/钓鱼邮件)
    4. ✅ 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 请求导致的内存耗尽 DoS4 小时内
    CVE-2025-61600高危相关 DoS 漏洞4 小时内

    ✅ 两个高危漏洞均在披露后 4 小时内修复,补丁随 v0.13.3 和 v0.13.4 版本发布。这种快速响应能力体现了 Stalwart 团队对安全问题的高度重视。

    📝 审计总结:

    最终报告赞扬 Stalwart 的代码库"健壮、架构良好、模块清晰划分",Rust 语言确保了内存安全,整体设计体现了"攻击者意识"的安全原则。

    🔐 内置安全机制一览:

    安全机制用途说明
    DMARC基于域名的邮件认证、报告和一致性
    DKIM域名密钥识别邮件签名
    SPF发件人策略框架验证
    ARC认证接收链(支持邮件转发场景)
    DANE基于 DNS 的命名实体认证
    MTA-STSMTA 严格传输安全
    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),所有计划支持的核心功能和开放标准协议均已就位。下一个重大里程碑是:

    1. 最终确定数据库 Schema
    2. 性能优化
    3. 发布 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 BenefitsGitHub/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 代表了邮件服务器领域的范式转变:从传统的多组件拼接架构,到现代的全栈一体化解决方案。 它的核心价值主张包括:

    1. 🔒 安全优先:Rust 语言 + 双次安全审计 + 4 小时漏洞响应
    2. 📱 现代协议:JMAP 为核心,完美适配移动互联网时代
    3. 🗓️ 完整协作:邮件 + 日历 + 联系人 + 文件,一个服务器搞定
    4. 🤖 AI 增强:企业版集成主流 LLM 提供商
    5. ☁️ 弹性架构:从 SQLite 单机到 1,024 节点集群的无缝扩展
    6. 🧩 极简运维:单一二进制 + Web 管理界面

    对于 2026 年希望掌控自己数据主权的个人和组织而言,Stalwart 提供了一条清晰的自托管路径——不再需要在功能、安全性和易用性之间做出妥协。


    📚 参考资料与进一步阅读:

    Brave 回复 1 week, 6 days ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在