Mailu 2024.06.65 介绍与选型指南
Mailu 自托管邮件服务器套件的定位、架构(多服务协作栈 front/smtp/imap/antispam/admin/resolver/redis)、功能特性、官方发行形态与版本节奏(2024.06 滚动分支 / 2024.06.65 锁定版),并给出与 Mailcow、docker-mailserver、Stalwart、Postal、Maddy 的量化选型对比。
Mailu 2024.06.65 介绍与选型指南
目标:面向"要把邮件服务收回自己手里"的运维与自托管爱好者,介绍 Mailu 这套开源自托管邮件服务器套件的定位、架构、功能与同类横向对比,帮助读者判断"什么场景该选 Mailu、什么场景不该选"。本文全部内容基于官方公开资料溯源编写(GitHub Releases、官方文档站 mailu.io、shields.io 仓库徽章),版本信息与数据的查询日期为 2026-10-21;本文不含本地实测内容,Mailu 的全链路部署实测见本专栏《Mailu Docker Compose 部署指南》。
一、环境信息
本文为认知篇(介绍与选型),不含本地安装实测,以下为本文取证所用的公开信息源与查询日期:
- 取证日期:2026-10-21
- 版本与发布记录:GitHub 仓库 Mailu/Mailu 的 Releases Atom 流(
https://github.com/Mailu/Mailu/releases.atom) - 社区活跃度:shields.io 仓库徽章(
https://img.shields.io/github/stars/Mailu/Mailu.json) - 官方文档站:mailu.io(2024.06 为当前稳定文档分支,官方文档站版本切换器仅提供 2024.06 / 2.0 / master 三支)
- 官方配置参考:
https://mailu.io/2024.06/configuration.html - 官方部署要求:
https://mailu.io/2024.06/compose/requirements.html - 管理命令与 API 官方页:
https://mailu.io/2024.06/cli.html、https://mailu.io/2024.06/api.html
二、软件概述
Mailu 是一套开箱即用的自托管邮件服务器套件(self-hosted mail server suite):它不是单一的 SMTP 程序,而是把"收邮件、发邮件、反垃圾、反病毒、Webmail、Web 管理后台、DNS 解析、证书管理"等一个完整邮件系统所需的全部角色,预先集成、预先联调为一套可整体交付的服务栈。2014 年项目以 Freeposte 之名起步(最初为法国非营利组织 TeDomum 重构其免费邮件托管服务而生),2015 年底更名为 Mailu 开放社区贡献,至今仍是社区驱动的自由软件项目,许可证为 MIT(仓库 LICENSE.md:"Copyright (c) 2016 All Mailu contributors")。
官方 README 对它的定位一句话概括:"Insane, simple full-featured mail server"(功能完整却不复杂的邮件服务器)。官方设计哲学(mailu.io/2024.06/general.html,查询日期 2026-10-21)按优先级列为四条:
- 一个正经的邮件服务器只运行自由软件;
- 一个正经的邮件服务器应该易于搭建和维护;
- 一个正经的邮件服务器要提供正经的安全性;
- 一个正经的邮件服务器要有简洁漂亮的用户界面。
支撑该哲学的两个关键结构性选择:
- 基于服务角色(多进程协作)构建:任何一部分都可以被单独替换/复用到别的项目,升级或替换某个组件不影响其他组件;
- 中央 front 入口:所有 HTTP 与邮件流量都经过统一的前置入口路由,对外只暴露一套地址与证书;管理界面同时提供 Web UI 与内部 API。
版本节奏(GitHub Releases Atom 流,查询日期 2026-10-21):Mailu 现行稳定分支为 2024.06(日期化命名),该分支采用"滚动补丁"模式——主版本号 2024.06 的部署物始终对应该分支最新状态,同时每合入一批修复即发布一个锁定版(pinned version,如 2024.06.65)。查询当日最新锁定版为 2024.06.65(2026-10-20 发布,本次更新内容为内置 Roundcube 升级至 1.6.20)。官方明确建议:日常跟随主版本号自动获取修复;希望"升级节奏完全自己控制"的用户使用锁定版。
💡 说明:Mailu 的"主版本号"与"锁定版"是同一分支的两种引用方式。主版本号(2024.06)适合希望自动吸收修复的部署;锁定版(2024.06.65)适合变更管理严格的运维环境——两者可随时互换,回滚就是把锁定版号改回上一个。
三、核心架构
Mailu 官方发行形态是一套多服务协作栈(官方 setup 向导 setup.mailu.io 生成的即为编排文件)。按官方编排模板(仓库 setup/flavors/compose/docker-compose.yml,2024.06 分支,查询日期 2026-10-21),各服务角色与所依托的成熟软件如下:
| 服务角色 | 承担软件 | 职责 | 是否必选 |
|---|---|---|---|
| front | Nginx | 统一入口:所有 SMTP/IMAP/POP3/Managesieve/HTTP 流量的路由、TLS 终结、证书管理、限速 | 必选 |
| smtp | Postfix | 出站/入站 SMTP、队列、出站投递 | 必选 |
| imap | Dovecot | IMAP/POP3 存储、Sieve 过滤、邮箱配额、Maildir 管理 | 必选 |
| antispam | Rspamd | 反垃圾、病毒扫描联动、DKIM 签名/校验策略执行 | 必选 |
| admin | Flask(Python) | Web 管理后台 + RESTful API + 用户/域名/别名数据库 + DKIM 密钥管理 + 自动发现 | 必选 |
| resolver | Unbound | 本地 DNS 递归解析器(DNSSEC 校验),供全栈查询发件方 MX/SPF/DKIM | 必选 |
| redis | Redis | 缓存、限速计数、Rspamd 配置存储 | 必选 |
| webmail | Roundcube 或 SnappyMail | 网页收发客户端 | 可选 |
| antivirus | ClamAV | 病毒特征库扫描 | 可选 |
| webdav | Radicale | 日历/联系人(CalDAV/CardDAV) | 可选 |
| fetchmail | fetchmail | 拉取外部邮箱邮件到本站 | 可选 |
| oletools | oletools/mraptor | Office 宏邮件检测(SCAN_MACROS) | 可选 |
| fts_attachments | Apache Tika | 附件 OCR/内容抽取,供全文检索 | 可选 |
架构要点(均出自官方文档与官方编排模板):
- 单入口多端口:front 一个角色统一监听 25/80/443/465/587/110/995/143/993/4190 全部邮件与 Web 端口,对内按协议转发到 smtp/imap/admin 等角色;好处是证书、限速、真实 IP 还原(REAL_IP_HEADER)只配置一处。
- 数据平面与管理平面分离:用户、域名、别名、配额、DKIM 密钥全部存于 admin 角色的数据库(默认 SQLite,官方明确推荐 SQLite 并不建议换库——配置参考原话 "there is currently very little data to be stored and SQLite is deemed both sufficient, simpler and more reliable overall");邮件本体存于 Dovecot 的 Maildir(可选 gz/bz2/zstd 落盘压缩)。
- 自带 DNS 递归解析:Mailu 强制全栈使用内置 Unbound 解析器(DNSSEC 校验),admin 角色启动时会强制自检 DNSSEC 是否生效,不通过则拒绝启动——这是官方为防 DNS 欺骗投毒(影响 SPF/DKIM/DMARC 判定)做的设计。
- 管理三通道:Web 管理界面、RESTful API(与 Web UI 能力对等,Bearer Token 认证)、
flask mailu管理命令行(官方cli.html列出 user/domain/alias/config-export/import 等命令),三者操作同一份数据。
四、功能特性
以下功能清单逐项对照官方配置参考(configuration.html)与官方编排模板整理,查询日期 2026-10-21:
| 功能域 | 具体能力 | 关键配置项 |
|---|---|---|
| 邮件收发 | 全协议:SMTP(25)/SMTPS(465)/Submission(587)/IMAP(143)/IMAPS(993)/POP3(110)/POP3S(995)/Managesieve(4190),可经 PORTS 按需裁剪 | PORTS(注意:默认不含 587/143/110,需显式开启) |
| 域名与账号 | 多域名、域名别名(alternatives)、无限别名/定向别名、域名管理员委托、用户配额、全局/域级注册开关 | DOMAIN_REGISTRATION、domain 的 max_users/max_aliases/max_quota_bytes |
| 认证安全 | 认证限速(按 IP 段与按账号双维度)、应用专用令牌(可强制厚客户端用 token)、代理认证头 | AUTH_RATELIMIT_IP/USER、AUTH_REQUIRE_TOKENS |
| TLS | 五种模式:letsencrypt(自动签发)、mail-letsencrypt、cert(自带证书)、mail、notls;25 端口 STARTTLS 兼容性开关 | TLS_FLAVOR、TLS_PERMISSIVE |
| 反垃圾反病毒 | Rspamd 策略:用户级垃圾分阈值、标记为已读、宏邮件拦截(oletools)、ClamAV 病毒处理动作(丢弃/拒收) | DEFAULT_SPAM_THRESHOLD、SCAN_MACROS、ANTIVIRUS_ACTION |
| 邮件合规 | 出站 DKIM 签名密钥管理、DMARC 报告邮箱(rua/ruf)、SPF 依赖内建 DNSSEC 解析器 | DMARC_RUA、DMARC_RUF |
| 邮件策略 | 单用户日发信限速、出站中继(smarthost)、免认证中继网段、未知收件人拒收/退信 | MESSAGE_RATELIMIT、RELAYHOST、RELAYNETS、REJECT_UNLISTED_RECIPIENT |
| 存储 | Maildir 落盘压缩(gz/bz2/zstd)、消息大小上限、外域邮件拉取(fetchmail)、邮件转发/自动回复 | COMPRESSION、MESSAGE_SIZE_LIMIT、FETCHMAIL_ENABLED |
| 检索 | Xapian 全文检索(多语言)、附件内容抽取(Tika OCR) | FULL_TEXT_SEARCH、FULL_TEXT_SEARCH_ATTACHMENTS |
| Web 界面 | 管理后台路径可配、站点名/Logo/背景定制、Webmail(Roundcube/SnappyMail 二选一) | WEB_ADMIN、SITENAME、WEBMAIL |
| 集成 | RESTful API(与 Web 管理能力对等,Token 认证,自带 Swagger UI 与 swagger.json)、反代头部真实 IP 还原、PROXY protocol | API、API_TOKEN、REAL_IP_FROM |
| 初始化 | 环境变量自动创建初始管理员(支持 create/ifmissing/update 三模式) | INITIAL_ADMIN_ACCOUNT/DOMAIN/PW/MODE |
官方硬件要求(compose/requirements.html,查询日期 2026-10-21):启用 ClamAV 时最低 3GB 内存 + 1GB 交换分区;不启用 ClamAV 时最低 1GB 内存 + 1GB 交换分区——在同类全家桶里属于相当低的门槛(对比 Mailcow 官方建议 ≥6GiB)。
五、快速开始(官方部署主线速览)
本节为官方 setup 向导(setup.mailu.io)生成物的"思路还原"速览,帮助读者建立整体认知;每一步的完整命令、真实回显与排障过程见本专栏实测篇《Mailu Docker Compose 部署指南》。
官方主线(Docker Compose 发行形态)四步:
- 用官方 setup 向导生成两份文件:在
setup.mailu.io按向导填写主机名(如mail.example.com)、主邮件域(如example.com)、TLS 策略、是否启用 Webmail/杀毒等选项,向导生成docker-compose.yml与mailu.env两份文件; - 放置文件并启动:两份文件放入同一目录后
docker compose up -d拉起全栈(front/smtp/imap/antispam/admin/resolver/redis); - 创建初始管理员:在
mailu.env预置INITIAL_ADMIN_ACCOUNT/INITIAL_ADMIN_DOMAIN/INITIAL_ADMIN_PW/INITIAL_ADMIN_MODE四个变量,栈首启时自动创建管理员;或事后用管理命令行flask mailu admin <账号> <域> <密码>创建; - 建域名与用户:管理后台(
WEB_ADMIN路径,默认/admin)或 CLI/API 创建邮件域与用户,客户端即可用 IMAPS(993)/Submission(587) 收发。
官方向导默认把 front 的十个端口全部绑定到宿主机,公网部署时按需保留邮件端口即可;被其他服务占用 80/443 的共享主机环境,可改为端口映射方式(本专栏部署篇即采用该形态,并对"哪些端口映射、哪些省略"做了完整记录)。
六、适用场景与限制
适合选择 Mailu 的场景:
- 个人/小团队/组织要整体接管邮件收发(收、发、垃圾过滤、Webmail、管理后台一次到位),不想逐个拼装 Postfix+Dovecot+Rspamd+Roundcube;
- 内存预算有限(官方最低 1GB,不装 ClamAV 时),VPS/小主机可跑;
- 需要完整的 Web 管理界面(用户自服务、域名管理员分权、配额管理)且希望有 REST API 做自动化对接;
- 看重配置面收敛:一份
mailu.env集中管理全栈配置,官方还提供 setup 向导降低起步门槛; - 已有证书或愿意用 Let's Encrypt 自动签发,希望 TLS 策略一键切换。
不适合或需权衡的场景:
- 只要"发信通道"(如业务系统告警发信、营销邮件群发)——Mailu 是"收发一体"的完整邮箱系统,纯发送场景更轻的选择是单功能 MTA(如本站《Maddy 0.9.6 介绍与选型指南》所述的单进程方案)或专用群发平台(Postal);Mailu 也能胜任但启动了过多用不到的角色;
- 追求单二进制、极致省资源(一台 512MB 小机)——Mailu 是多进程协作栈,即便裁剪也多于 7 个服务进程,此类场景应看单二进制方案(如 Stalwart);
- 需要单机直接安装到系统(裸 RPM/deb、无服务栈编排环境)——官方发行形态只有 Docker 编排与 Kubernetes Helm 两种,无传统包管理器安装通道;
- 需要官方商业支持 SLA——Mailu 是纯社区项目(TeDomum 社区孵化),无商业支持合同可购。
官方明确的限制(文档/配置参考原文归纳):
- 管理数据库官方推荐 SQLite,不建议 PostgreSQL/MariaDB(官方明说数据量小、SQLite 足够可靠)——超大规模邮件托管不在其设计目标内;
- 25 端口 STARTTLS 强烈建议保持宽松兼容(
TLS_PERMISSIVE=true默认),强行收紧会导致老服务器邮件退信或静默丢弃; - 对公网邮件服务,25/465/993 属不可裁剪端口(
PORTS配置官方原话 "ports 25,465 and 993 cannot be disabled")。
七、同类选型对比
对比口径说明:以下数据全部为 2026-10-21 查询快照——星数取自 shields.io 徽章接口(img.shields.io/github/stars/<repo>.json),版本号取自各项目 GitHub Releases Atom 流或站内专栏实证;Mailcow 与 Maddy 为本站已有专栏,点击表内链接可跳转站内实读。
| 维度 | Mailu | Mailcow(本站专栏) | docker-mailserver | Stalwart | Postal | Maddy(本站专栏) |
|---|---|---|---|---|---|---|
| 定位 | 全功能自托管邮件全家桶(收发+过滤+Webmail+管理台) | 全功能自托管邮件全家桶(SOGo 群件风格) | 镜像化邮件服务器全家桶(无 Web 管理台,配置走 CLI 脚本) | 单二进制全功能邮件服务器(SMTP/IMAP/JMAP) | 邮件发送平台(事务/营销批量发信,无个人邮箱) | 单二进制轻量邮件服务器(收发+IMAP) |
| GitHub 星数(2026-10-21) | 7.6k | 14k | 20k | 15k | 17k | 6.1k |
| 最新版本(2026-10-21 实查) | 2024.06.65(2026-10-20) | 2026-09a | v16.0.1(2026-09-04) | v0.16.27(2026-10-18) | v3.3.7(2026-06-03) | 0.9.6 |
| 底层组件 | Postfix + Dovecot + Rspamd + Roundcube/SnappyMail + Unbound | Postfix + Dovecot + Rspamd + SOGo + Unbound | Postfix + Dovecot + Rspamd + ClamAV(自组) | Rust 自研全套(自研 SMTP/IMAP/JMAP/检索) | Postfix(投递)+ Ruby/Rails 应用 | Go 自研全套 |
| Web 管理台 | 有(自带,+REST API) | 有(功能最全,+REST API) | 无(setup.sh CLI) | 有(自带 WebAdmin) | 有(面向发信运营) | 无(纯配置文件) |
| Webmail | Roundcube 或 SnappyMail(可选) | SOGo(含日历/联系人) | 无(自行加) | 内置 JMAP,Webmail 需外接 | 无 | 无(需外接) |
| 最低内存(官方口径) | 1GB(无 ClamAV)/ 3GB(含 ClamAV) | 建议 ≥6GiB | 2GB+(官方推荐 6GB 量级体验更好) | 数百 MB 量级(单进程) | 4GB+(Ruby 应用+数据库) | 极低(数十 MB 量级) |
| 发行形态 | Docker 编排 / K8s Helm | Docker 编排 | Docker(单容器) | 单二进制 / Docker / 系统包 | 系统安装(Ruby+MySQL+RabbitMQ 等) | 单二进制 / 系统包 / Docker |
| 收发一体(个人邮箱型) | ✔ | ✔ | ✔ | ✔ | ✘(纯发送) | ✔ |
| 邮件托管运营型(多租户/群发统计) | 弱(个人/小组织托管向) | 中(多域托管较强) | 弱 | 中 | 强(此为其主业) | 弱 |
如何选(一句话结论):
- 要"完整邮箱系统 + Web 管理台 + 低门槛":Mailu 与 Mailcow 二选一——内存富余(≥6GiB)、要群件(日历/协作)选 Mailcow;资源有限(1~2GB)、要轻量全家桶与 REST API 自动化选 Mailu;
- 要"单人/小团队的极简收发"且不想养管理台:docker-mailserver(配置即脚本,社区最大)或 Stalwart(单二进制、性能强、协议新潮支持 JMAP);
- 要"业务系统批量发信"(验证码/通知/营销):Postal 是专职选手,Mailu/Mailcow 这类"邮箱系统"并非为此设计;
- 要"极低资源跑一台自用邮件服务器":Maddy(Go 单二进制,几十 MB 内存),代价是无 Web 管理台、功能面窄(详见站内 Maddy 专栏)。
💡 技术拓展:以上同类组件在"反垃圾引擎"上的选择也有差异——Rspamd(Mailu/Mailcow/docker-mailserver 采用,Lua 扩展、策略灵活)、SpamAssassin(传统老牌,perl,性能偏弱)、Stalwart 内置自研 Spamfilter(单二进制内嵌)。选型时若看重"可自行编写反垃圾规则",Rspamd 系全家桶更合适;若看重"零依赖一体化",Stalwart 内置引擎免集成。本文主角 Mailu 采用 Rspamd,且将垃圾阈值下放到用户级(
spam_threshold默认 80),这是它相比早期 Mailu 版本的实用改进。
八、参考链接
- 项目官网:https://mailu.io/
- 当前稳定版文档(2024.06):https://mailu.io/2024.06/
- GitHub 仓库:https://github.com/Mailu/Mailu
- Releases 页(版本流水):https://github.com/Mailu/Mailu/releases
- 官方 setup 向导:https://setup.mailu.io/
- 配置参考:https://mailu.io/2024.06/configuration.html
- 部署要求:https://mailu.io/2024.06/compose/requirements.html
- 管理命令行官方文档:https://mailu.io/2024.06/cli.html
- RESTful API 官方文档:https://mailu.io/2024.06/api.html
- 本站同类专栏:《Mailcow 2026-09a 介绍与选型指南》《Maddy 0.9.6 介绍与选型指南》《Mailu Docker Compose 部署指南》