Maddy 0.9.6 介绍与选型指南

Maddy Mail Server 0.9.6 认知与选型:Go 单二进制一体化邮件服务器(SMTP MTA/MX + Submission + IMAP + DKIM/SPF/DMARC),含核心架构、功能特性、官方快速上手与 docker-mailserver/iRedMail/Stalwart/Postfix+Dovecot 量化选型对比

Maddy邮件服务器2026/10/19

Maddy 0.9.6 介绍与选型指南

目标:面向自托管邮件服务器选型场景,介绍 Maddy Mail Server 0.9.6 的定位、架构、功能与适用边界,并给出与同类方案的量化对比。本文为认知篇,全部论断基于官方公开资料(GitHub 仓库与 Releases、maddy.email 官方文档站),查询日期 2026-10-19,不做本地安装实测(安装实测见《Ubuntu 22.04 安装 Maddy 0.9.6 指南》)。

一、环境信息

本文为认知类文档,信息基准如下,读者复核时效性时以此为对照。

1.1 版本依据

  • 介绍版本:Maddy 0.9.6(tag v0.9.6,GitHub Releases 标题 "[SECURITY] maddy 0.9.6",发布于 2026-10-03,2026-10-19 实查为最新稳定版,无 Pre-release 在列)
  • 官方二进制构建信息:0.9.6 linux/amd64 go1.27.1(Go 1.26 起为最低编译版本,v0.9.6 Release Notes 明确说明)
  • 发布节奏参考(2026-10-19 实查 GitHub Releases):v0.9.5(2026-05-23)、v0.9.4(2026-04-30)、v0.9.3(2026-04-12,[SECURITY])、v0.9.2(2026-03-26)、v0.9.1(2026-03-26),近一年保持约 6-7 周一个版本的稳定节奏,其中 0.9.3 与 0.9.6 为安全修复版

1.2 官方来源清单

1.3 开源许可

Maddy 采用 GPL-3.0 许可(源码树 COPYING 文件与仓库声明),可自由自托管使用;二开后的分支对外分发时需遵循同许可。

二、软件概述

Maddy Mail Server 是一个用 Go 编写的"可组合的一体化邮件服务器"(Composable all-in-one mail server)。官方 README 对其能力边界的定义(2026-10-19 实查):通过 SMTP 发送消息(MTA 角色)、通过 SMTP 接收消息(MX 角色)、存储消息并通过 IMAP 提供访问,同时实现邮件安全所必需的辅助协议 DKIM、SPF、DMARC、DANE、MTA-STS。

它对标并试图替代的是传统 Linux 邮件栈的多进程组合——官方 README 原文:"It replaces Postfix, Dovecot, OpenDKIM, OpenSPF, OpenDMARC and more with one daemon with uniform configuration and minimal maintenance cost."(用一个守护进程替代 Postfix、Dovecot、OpenDKIM、OpenSPF、OpenDMARC 等,配置统一、维护成本最低。)

三个最值得注意的官方定位表述:

  1. 单二进制:一个可执行文件实现 MTA/MDA/MSA/IMAP 全角色,官方帮助原文(实测 maddy --help 输出):"Maddy is Mail Transfer agent (MTA), Mail Delivery Agent (MDA), Mail Submission Agent (MSA), IMAP server and a set of other essential protocols/schemes necessary to run secure email server implemented in one executable."
  2. 永不以 root 运行:官方教程明确 "Unlike most other Linux mail servers, maddy never runs as root",低特权端口靠 systemd 授予的 CAP_NET_BIND_SERVICE 能力。
  3. IMAP 存储为 beta:官方 README 显式提示——"IMAP storage is 'beta'. If you are looking for stable and feature-packed implementation you may want to use Dovecot instead."(这是选型时必须正视的官方边界声明。)

💡 技术拓展:一体化邮件服务器与传统组合栈的架构取向对比——

取向代表特点适用
单守护进程一体化Maddy、Stalwart一个进程 + 一份配置覆盖全栈,运维面窄个人/小团队自托管
多容器全家桶docker-mailserver成熟组件拼装,功能全但组件多需要成熟反垃圾生态
安装器全家桶iRedMail脚本一键装全套,组件可替换快速交付企业邮箱
手工组合栈Postfix + Dovecot各组件独立演进、文档海量大规模/深度定制

Maddy 属第一类,牺牲功能广度换取配置与运维的统一性。

三、核心架构

Maddy 的架构可以概括为"模块化管线 + 统一配置语言 + 内置存储"。以下拆解均引自官方文档站(maddy.email/reference)。

3.1 模块化管线

配置文件 maddy.conf 由"模块实例定义 + 模块引用"构成,模块按职责分五类(官方 Reference manual 的模块分类):

  • endpoint(端点):监听网络端口收发协议——smtp(25 端口 MTA/MX)、submission(465/587 端口认证提交)、imap(143/993 端口邮箱访问)、lmtp、openmetrics(Prometheus 遥测)
  • checks(检查):入站策略检查——spf、dkim(验证)、dmarc、require_mx_record、dnsbl、authorize_sender、rspamd、milter 等
  • modify(改写):消息头与信封改写——dkim(签名)、replace_rcpt(收件人重写)等
  • target(投递目标):消息的最终去向——target.remote(出站 MX 投递)、target.queue(队列缓冲)、storage.imapsql(本地邮箱投递)、target.smtp/lmtp(转发)
  • table/auth(表与认证):sql_table/file/static/regexp 等表模块 + pass_table、pam、shadow、ldap、dovecot_sasl 等认证模块

3.2 消息路由(msgpipeline)

入站消息由 msgpipeline 决策:按"来源域 → 目的域"两级匹配到 destination/source 块,执行 checks/modify 链后交给 target。默认配置的骨架逻辑:本地域收件 → local_routing 管线 → local_mailboxes 存储;外部收件人 → DKIM 签名 → remote_queue 队列 → outbound_delivery 出站。这种"声明式管线"是 Maddy 与 Postfix(main.cf + master.cf + 多张独立映射表)最大的心智差异。

3.3 内置存储引擎

  • 认证库:pass_table + sql_table(默认 SQLite,credentials.db),也可换 PAM/shadow/LDAP;
  • 邮箱库:storage.imapsql——IMAP 索引与元数据存关系数据库(SQLite/PostgreSQL/MySQL 可选),消息本体(blob)默认存文件系统(messages/ 目录),可换 S3 兼容对象存储(官方 blob 存储模块 blob/fs、blob/s3);
  • 磁盘布局:state 目录 /var/lib/maddy 下 credentials.db + imapsql.db(含 WAL/SHM)+ messages/ + remote_queue/ + dkim_keys/ + mtasts_cache/。

💡 技术拓展:邮箱存储后端对比——

后端原理适用
SQLite单文件嵌入式库单机小规模,备份即拷文件
PostgreSQL/MySQL独立数据库服务多实例共享、大规模索引
Dovecot Maildir每信一文件、目录即邮箱与传统工具链兼容
S3 对象存储消息本体放对象存储消息量大、计算存储分离

Maddy 默认采用"SQLite 索引 + 文件系统 blob",本文所有实测基于该组合。

四、功能特性

以下特性清单以官方文档站 Reference 与 README 为准(2026-10-19 实查):

  • SMTP 全角色:MTA(25 端口收信)、MSA(465 隐式 TLS / 587 STARTTLS 认证提交),同一进程内完成;
  • IMAP4rev1:邮箱/文件夹/特殊用途标记(Sent/Trash/Junk/Drafts/Archive special-use),官方标注 beta;
  • DKIM 双向:出站签名(modify/dkim,首次校验配置时自动生成 RSA-2048 密钥对并输出 DNS TXT 记录)、入站验证(checks/dkim);
  • SPF/DMARC/DNSBL:入站策略检查链,DMARC 隔离策略可将未通过消息投至 Junk;
  • DANE/MTA-STS/TLSRPT:出站 TLS 安全策略(mx_auth 块:dane、mtasts、local_policy);
  • 发送方授权:authorize_sender 校验认证用户与 From 地址一致性,防本域账号伪造;
  • 限流:按全部连接/按源/按目的地多维 rate 与 concurrency 限制(limits 块);
  • 别名与子址:/etc/aliases 风格别名表 + user+tag@domain 子址重写;
  • 配额:IMAP 存储配额(per-account quota,官方 storage 文档);
  • 遥测:openmetrics 端点暴露 Prometheus 指标;
  • CLI 管理:maddy creds(凭据)、maddy imap-acct/imap-mboxes/imap-msgs(存储管理)、maddy hash(口令哈希)、maddy verify-config(配置校验);
  • 多实例:maddy@.service 模板单元支持一机多实例(不同配置文件/状态目录)。

v0.9.6 安全修复内容(Release Notes 实查)涉及 4 个 GHSA 编号:proxy_protocol 未显式授权即可伪造来源(GHSA-rpmv-mh3g-cf5c)、auth/plain_separate 缺口令校验绕过(GHSA-vc2f-9mpf-273q)、TLS-Required 头在非提交端口被错误处理(GHSA-g8mw-9qf4-cg5x)、限流桶死锁(GHSA-f2p9-pvm4-fhrj)。安全版本更新及时是该版本值得升级的直接理由。

五、快速上手(引自官方文档)

以下最小示例引自官方教程 Installation & initial configuration(https://maddy.email/tutorials/setting-up/ ,2026-10-19 查阅),本文不重复实测(本地全流程实测见《Ubuntu 22.04 安装 Maddy 0.9.6 指南》)。

安装(预编译 tarball 路线):

useradd -mrU -s /sbin/nologin -d /var/lib/maddy -c "maddy mail server" maddy
# 解压 Release tarball 后:
install -m 0755 maddy /usr/local/bin/maddy
install -m 0644 maddy.conf /etc/maddy/maddy.conf
install -m 0644 systemd/*.service /etc/systemd/system/
systemctl daemon-reload
systemctl start maddy

账号开通(官方教程明确"认证凭据与 IMAP 存储账户分离"):

maddy creds create postmaster@example.org
maddy imap-acct create postmaster@example.org

官方教程给出的 DNS 记录清单(域 example.org、MX 主机 mx1.example.org):A/AAAA 记录、example.org. MX 10 mx1.example.org.、SPF v=spf1 mx ~all、_dmarc DMARC 记录、_mta-sts MTA-STS 与 TLSRPT 记录,以及 maddy 自动生成后输出在 dkim_keys/<域>_default.dns 的 DKIM 公钥 TXT 记录。

六、适用场景与限制

6.1 适用场景

  • 个人与小团队自托管:单机、少量域、十到百级邮箱,追求"装完即用、配置一份文件";
  • 低维护成本的轻量节点:VPS 资源紧张(内存占用低于 100MB 量级),不愿维护 Postfix+Dovecot+DKIM 三件套;
  • 嵌入式/一次性环境:静态编译单二进制便于打包分发与版本回滚;
  • 作为中继/边缘 MX:msgpipeline 声明式路由 + target.smtp/lmtp 转发,适合做内部列表服务或网关的前置。

6.2 官方声明的限制

  • IMAP 存储为 beta(README 原文):功能完整度与稳定性不及 Dovecot,重 IMAP 功能(如高级过滤、多端同步生态)的正式生产邮箱建议选 Dovecot 系;
  • 无官方 deb/rpm 软件仓库:Ubuntu/Debian 官方源无该包,需 tarball 手动安装或源码编译(AUR 仅覆盖 Arch 系);
  • 无 Web 管理界面:账号/邮箱/队列管理全部走 CLI,无 iRedAdmin/SOGo 类面板;
  • 反垃圾为策略检查级:内置 SPF/DKIM/DMARC/DNSBL 属协议校验,内容级反垃圾需外接 Rspamd(milter)或 SpamAssassin,不内置杀毒引擎;
  • Windows/macOS 无官方支持:官方二进制仅 Linux(musl)与源码自编译路径。

七、同类选型对比

对比对象:docker-mailserver(容器化全家桶)、iRedMail(安装器全家桶)、Stalwart(Rust 一体化)、Postfix+Dovecot(传统组合)。社区数据与版本均为 2026-10-19 联网实查(GitHub 页面 stargazerCount 与 releases/latest 重定向),标注于表内。

7.1 社区活跃度与版本节奏

方案GitHub Stars(2026-10-19)最新版本(实查)版本节奏社区渠道
Maddy 0.9.66,110v0.9.6(2026-10-03)约 6-7 周/版,2026 年 5 个 releaseGitHub Issues + sr.ht 邮件列表 + IRC #maddy
docker-mailserver19,618v16.0.1月度级小版本GitHub + 官方文档站
Stalwart15,156v0.16.27高频迭代(周级补丁)GitHub + Discord
iRedMail1,848(GitHub 镜像)官网 tarball 发行(无规范 GitHub release)半年度大版本官方论坛
Postfix + Dovecot非单仓库(发行版维护)随发行版Postfix/Dovecot 各自多年长周期mailing list + 发行版

解读:Maddy 社区规模为 docker-mailserver 的三分之一、Stalwart 的 40%,但其版本节奏在 2026 年明显提速(安全响应及时,一年内 2 个 SECURITY 版本);iRedMail 的 GitHub star 不能反映真实用量(其分发以官网 tarball 为主);Postfix+Dovecot 以发行版为载体,无可比的单仓库 star。

7.2 功能与兼容矩阵

维度Maddy 0.9.6docker-mailserver v16Stalwart v0.16iRedMailPostfix+Dovecot
运行形态单二进制 + systemd多容器 compose单二进制 + systemd安装器装全套(Postfix+Dovecot+SOGo/Roundcube)手工组合
IMAPbetaDovecot(成熟)内置(JMAP 同支持)DovecotDovecot
DKIM/SPF/DMARC内置双向OpenDKIM/OpenDMARC 外挂内置amavis/OpenDKIM 外挂手工拼装
内容反垃圾/杀毒外接 Rspamd/milterRspamd+ClamAV 内置内置反垃圾(无杀毒)SpamAssassin+Amavis+ClamAV手工拼装
Web 管理无无(CLI setup 脚本)内置 WebAdminiRedAdmin(部分付费)无
账号存储SQLite/LDAP/PAM文件配置(无 SQL)内置 + SQL/LDAPMySQL/LDAP任意
配置统一性一份 conf环境变量 + 多组件配置单 TOML多组件最分散
资源占用低(单进程)高(多组件常驻)低-中高中
适用规模个人/小团队小-中型个人-中型中型(企业邮箱)任意(靠运维能力)

7.3 选型建议

  • 选 Maddy:个人/小团队 Linux 自托管、想要"一个二进制 + 一份配置 + 低内存"、能接受 IMAP beta 边界与 CLI 管理;
  • 选 docker-mailserver:想要 Postfix/Dovecot 成熟内核 + Rspamd/ClamAV 全套反垃圾、可接受多容器形态(见《docker-mailserver 16.0.1 介绍与选型指南》);
  • 选 Stalwart:看重 Web 管理台、JMAP 协议与 Rust 性能(见《Stalwart v0.16.26 介绍与选型指南》);
  • 选 iRedMail:企业邮箱快速交付、需要 Web 面板与现成邮件套件(见《iRedMail 1.8.8 介绍与选型指南》);
  • 选 Postfix+Dovecot:大规模、深度定制、有专职邮件运维;
  • 组合思路:Maddy 也常被用作边缘 MX/中继,与后端 Dovecot 存储、Listmonk 邮件列表等组合,此时其 beta IMAP 边界不构成障碍。

八、参考链接