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 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 官方来源清单
- 源码仓库:https://github.com/foxcpp/maddy
- 官方文档站:https://maddy.email/(含 tutorials、reference 模块手册、FAQ)
- 官方安装教程:https://maddy.email/tutorials/setting-up/
- 官方构建归档:https://maddy.email/builds/
- 邮件列表:https://lists.sr.ht/~foxcpp/maddy(issue 跟踪在 GitHub)
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 等,配置统一、维护成本最低。)
三个最值得注意的官方定位表述:
- 单二进制:一个可执行文件实现 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." - 永不以 root 运行:官方教程明确 "Unlike most other Linux mail servers, maddy never runs as root",低特权端口靠 systemd 授予的 CAP_NET_BIND_SERVICE 能力。
- 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.6 | 6,110 | v0.9.6(2026-10-03) | 约 6-7 周/版,2026 年 5 个 release | GitHub Issues + sr.ht 邮件列表 + IRC #maddy |
| docker-mailserver | 19,618 | v16.0.1 | 月度级小版本 | GitHub + 官方文档站 |
| Stalwart | 15,156 | v0.16.27 | 高频迭代(周级补丁) | GitHub + Discord |
| iRedMail | 1,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.6 | docker-mailserver v16 | Stalwart v0.16 | iRedMail | Postfix+Dovecot |
|---|---|---|---|---|---|
| 运行形态 | 单二进制 + systemd | 多容器 compose | 单二进制 + systemd | 安装器装全套(Postfix+Dovecot+SOGo/Roundcube) | 手工组合 |
| IMAP | beta | Dovecot(成熟) | 内置(JMAP 同支持) | Dovecot | Dovecot |
| DKIM/SPF/DMARC | 内置双向 | OpenDKIM/OpenDMARC 外挂 | 内置 | amavis/OpenDKIM 外挂 | 手工拼装 |
| 内容反垃圾/杀毒 | 外接 Rspamd/milter | Rspamd+ClamAV 内置 | 内置反垃圾(无杀毒) | SpamAssassin+Amavis+ClamAV | 手工拼装 |
| Web 管理 | 无 | 无(CLI setup 脚本) | 内置 WebAdmin | iRedAdmin(部分付费) | 无 |
| 账号存储 | SQLite/LDAP/PAM | 文件配置(无 SQL) | 内置 + SQL/LDAP | MySQL/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 边界不构成障碍。
八、参考链接
- GitHub 仓库:https://github.com/foxcpp/maddy
- v0.9.6 发布页:https://github.com/foxcpp/maddy/releases/tag/v0.9.6
- 官方文档站:https://maddy.email/
- 官方安装教程:https://maddy.email/tutorials/setting-up/
- 配置语法参考:https://maddy.email/reference/config-syntax/
- 同平台同族文档:《docker-mailserver 16.0.1 介绍与选型指南》《iRedMail 1.8.8 介绍与选型指南》《Stalwart v0.16.26 介绍与选型指南》《Listmonk 6.2.0 介绍与选型指南》
- 本系列文档:《Ubuntu 22.04 安装 Maddy 0.9.6 指南》《Maddy 0.9.6 配置参数详解》《Maddy 0.9.6 日常运维手册》