Mailu 2024.06.65 介绍与选型指南

Mailu 自托管邮件服务器套件的定位、架构(多服务协作栈 front/smtp/imap/antispam/admin/resolver/redis)、功能特性、官方发行形态与版本节奏(2024.06 滚动分支 / 2024.06.65 锁定版),并给出与 Mailcow、docker-mailserver、Stalwart、Postal、Maddy 的量化选型对比。

Mailu邮件服务器2026/10/21

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)按优先级列为四条:

  1. 一个正经的邮件服务器只运行自由软件;
  2. 一个正经的邮件服务器应该易于搭建和维护;
  3. 一个正经的邮件服务器要提供正经的安全性;
  4. 一个正经的邮件服务器要有简洁漂亮的用户界面。

支撑该哲学的两个关键结构性选择:

  • 基于服务角色(多进程协作)构建:任何一部分都可以被单独替换/复用到别的项目,升级或替换某个组件不影响其他组件;
  • 中央 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),各服务角色与所依托的成熟软件如下:

服务角色承担软件职责是否必选
frontNginx统一入口:所有 SMTP/IMAP/POP3/Managesieve/HTTP 流量的路由、TLS 终结、证书管理、限速必选
smtpPostfix出站/入站 SMTP、队列、出站投递必选
imapDovecotIMAP/POP3 存储、Sieve 过滤、邮箱配额、Maildir 管理必选
antispamRspamd反垃圾、病毒扫描联动、DKIM 签名/校验策略执行必选
adminFlask(Python)Web 管理后台 + RESTful API + 用户/域名/别名数据库 + DKIM 密钥管理 + 自动发现必选
resolverUnbound本地 DNS 递归解析器(DNSSEC 校验),供全栈查询发件方 MX/SPF/DKIM必选
redisRedis缓存、限速计数、Rspamd 配置存储必选
webmailRoundcube 或 SnappyMail网页收发客户端可选
antivirusClamAV病毒特征库扫描可选
webdavRadicale日历/联系人(CalDAV/CardDAV)可选
fetchmailfetchmail拉取外部邮箱邮件到本站可选
oletoolsoletools/mraptorOffice 宏邮件检测(SCAN_MACROS)可选
fts_attachmentsApache 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 protocolAPI、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 发行形态)四步:

  1. 用官方 setup 向导生成两份文件:在 setup.mailu.io 按向导填写主机名(如 mail.example.com)、主邮件域(如 example.com)、TLS 策略、是否启用 Webmail/杀毒等选项,向导生成 docker-compose.yml 与 mailu.env 两份文件;
  2. 放置文件并启动:两份文件放入同一目录后 docker compose up -d 拉起全栈(front/smtp/imap/antispam/admin/resolver/redis);
  3. 创建初始管理员:在 mailu.env 预置 INITIAL_ADMIN_ACCOUNT/INITIAL_ADMIN_DOMAIN/INITIAL_ADMIN_PW/INITIAL_ADMIN_MODE 四个变量,栈首启时自动创建管理员;或事后用管理命令行 flask mailu admin <账号> <域> <密码> 创建;
  4. 建域名与用户:管理后台(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 为本站已有专栏,点击表内链接可跳转站内实读。

维度MailuMailcow(本站专栏)docker-mailserverStalwartPostalMaddy(本站专栏)
定位全功能自托管邮件全家桶(收发+过滤+Webmail+管理台)全功能自托管邮件全家桶(SOGo 群件风格)镜像化邮件服务器全家桶(无 Web 管理台,配置走 CLI 脚本)单二进制全功能邮件服务器(SMTP/IMAP/JMAP)邮件发送平台(事务/营销批量发信,无个人邮箱)单二进制轻量邮件服务器(收发+IMAP)
GitHub 星数(2026-10-21)7.6k14k20k15k17k6.1k
最新版本(2026-10-21 实查)2024.06.65(2026-10-20)2026-09av16.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 + UnboundPostfix + Dovecot + Rspamd + SOGo + UnboundPostfix + Dovecot + Rspamd + ClamAV(自组)Rust 自研全套(自研 SMTP/IMAP/JMAP/检索)Postfix(投递)+ Ruby/Rails 应用Go 自研全套
Web 管理台有(自带,+REST API)有(功能最全,+REST API)无(setup.sh CLI)有(自带 WebAdmin)有(面向发信运营)无(纯配置文件)
WebmailRoundcube 或 SnappyMail(可选)SOGo(含日历/联系人)无(自行加)内置 JMAP,Webmail 需外接无无(需外接)
最低内存(官方口径)1GB(无 ClamAV)/ 3GB(含 ClamAV)建议 ≥6GiB2GB+(官方推荐 6GB 量级体验更好)数百 MB 量级(单进程)4GB+(Ruby 应用+数据库)极低(数十 MB 量级)
发行形态Docker 编排 / K8s HelmDocker 编排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 版本的实用改进。

八、参考链接