docker-mailserver 16.0.1 介绍与选型指南

docker-mailserver 16.0.1 介绍与选型指南:一体化邮件服务器定位、Postfix/Dovecot/Rspamd/ClamAV 核心架构、功能特性、快速上手与 iRedMail/Mailu/mailcow/Stalwart 选型对比,社区与镜像数据 2026-10-18 实查。

docker-mailserverdocker-mailserver2026/10/18

docker-mailserver 16.0.1 介绍与选型指南

‍‍​​‌​> 目标:介绍一体化邮件服务器 docker-mailserver(DMS)的定位、核心架构、功能特性与同类方案选型结论,帮助读者判断是否选用以及与 iRedMail、Mailu、mailcow、Stalwart 如何取舍。版本与社区数据已在 2026-10-18 逐项实查(GitHub API、官方组件仓库 manifest),关键论断均标注来源与查询日期。

一、环境信息

本章是本文全部结论的信息基准:所有版本号、社区数据、仓库与许可信息,均于查询日期 2026-10-18 通过官方渠道实查获得,未做任何推测性补齐。

  • 信息基准(查询日期):2026-10-18
  • 版本依据:GitHub Releases 最新稳定版 v16.0.1,发布于 2026-09-04(来源:https://api.github.com/repos/docker-mailserver/docker-mailserver/releases/latest,2026-10-18 实查)
  • 官方来源清单:
    • 代码仓库:https://github.com/docker-mailserver/docker-mailserver
    • 官方文档站:https://docker-mailserver.github.io/docker-mailserver/latest/
    • 组件镜像:ghcr.io/docker-mailserver/docker-mailserver(2026-10-18 manifest 实查存在 16.0.1 标签)
  • 社区数据(GitHub API,2026-10-18 实查):19,609 Stars、MIT 许可证、86 个开放 Issue、最近一次代码推送 2026-10-17
  • 配套实测环境(供交叉参考):Ubuntu 22.04 服务器,邮件域名 example.com,主机名 mail.example.com,数据目录 /opt/data/docker-mailserver/

二、软件概述

docker-mailserver(社区惯称 DMS)是一个开箱即用的一体化邮件服务器:把 SMTP 收发、IMAP 收信、反垃圾反病毒、DKIM/SPF/DMARC 邮件认证等一整套邮件服务能力集成到单一交付形态中,通过一个管理脚本 setup.sh 完成账号、别名、配额、DKIM 密钥等全部日常管理。它面向"自托管邮件"场景,核心主张是:不需要分别安装和调通 Postfix、Dovecot、反垃圾引擎等多个部件,一条命令部署、一个脚本管理。

关键身份信息(2026-10-18 实查):

项目值来源
当前稳定版v16.0.1(2026-09-04 发布)GitHub Releases API
开源许可MIT仓库 LICENSE(GitHub API)
社区热度19,609 Stars / 86 open issuesGitHub API
维护活跃度最近推送 2026-10-17(持续活跃)GitHub API
版本节奏年度大版本 + 随补丁小版本Releases 列表实查

💡 技术拓展:一体化邮件服务器 ≠ 新的邮件协议实现。它本质是对既有邮件组件的集成发行版,集成策略业界有三种主流做法——

做法代表特点适用
全新单二进制重写Stalwart一门语言自研全套(SMTP/IMAP/JMAP),资源占用低极简运维、新场景
经典组件集成docker-mailserver、iRedMail、mailcow沿用 Postfix/Dovecot 等久经考验组件,生态兼容性最强求稳、求兼容
套件化打包Mailu、mailcow多组件套件化交付 + 自带 Web 管理界面要图形化管理

docker-mailserver 实际采用「经典组件集成」路线:Postfix + Dovecot + Rspamd 的组合在邮件领域验证时间最长,工具链(postqueue、doveadm 等)通用。本文选择该路线,理由是生产环境排障资料最多、与外部系统(如中继网关)对接的文档最全。

版本节奏实查(GitHub Releases,2026-10-18):v15.0.0(2025-03-01)→ v15.0.1(2025-03-23)→ v15.0.2(2025-03-26)→ v15.1.0(2025-08-12)→ v16.0.0(2026-08-30)→ v16.0.1(2026-09-04)。规律为"年度大版本、季度级补丁、大版本发布后两周内出首个修订版",升级压力小,适合长期运行。

三、核心架构

docker-mailserver 的架构是"一个管理面 + 五个服务组件":管理面即 setup.sh 命令行,服务组件按邮件协议分工协作。以下组件清单与版本号均为在 Ubuntu 22.04 + v16.0.1 环境中的实测值(命令与回显见各篇实测文档)。

3.1 组件分工表

组件实测版本角色监听端口(实测)
Postfix3.10.13(postconf mail_version)MTA:25 端口收信、587/465 端口认证提交、对外投递25 / 465 / 587
Dovecot2.4.1-4(dovecot --version)MDA:IMAP/IMAPS 收信、LMTP 本地投递、Sieve 过滤143 / 993(995 可选)
Rspamd4.1.5(rspamadm --version)反垃圾 + 邮件认证:DKIM/SPF/DMARC/ARC 签验、垃圾评分11332/11334(内部)
ClamAV1.4.3/28109(clamscan --version)反病毒:附件病毒扫描内部套接字
Redis8.0.2(redis-server --version)Rspamd 的统计与缓存后端6379(内部)
fail2ban可选启用认证爆破封禁(配合防火墙能力)无监听

💡 技术拓展:反垃圾引擎不止 Rspamd 一种,主流选项对比——

引擎原理特点适用
RspamdLua 规则 + 统计学习,事件驱动单进程高吞吐,DKIM/SPF/DMARC/ARC 一体现代首选
SpamAssassinPerl 规则打分老牌稳定,性能一般传统环境
Amavis内容过滤网关(配合 SA)链路长、延迟高遗留架构

docker-mailserver v16 实际采用 Rspamd 作为默认反垃圾栈。实测证据:同 image 同时开启旧栈(Amavis/OpenDKIM/policyd-spf)与新栈(Rspamd)时,启动日志明确警告两者并存不推荐,关闭旧栈后警告消失——即 v16 时代应只用 Rspamd 承担 DKIM/SPF/DMARC 与评分。

3.2 邮件数据流

入站与出站是两条对称链路(以下流程均为实测验证过的路径,追踪过程见《docker-mailserver 日常运维手册》):

  • 入站:外部发件方 → 25 端口(Postfix)→ Rspamd(SPF/DKIM/DMARC 校验 + 评分 + 病毒扫描)→ 通过则 Dovecot LMTP 投递到收件人 Maildir;评分超阈值则按策略改投 Junk 或直接拒收(实测中一次伪造邮件拿到 10.00 评分被改投 Junk,一次本域伪造因 DMARC p=quarantine 被当场拒信 554)。
  • 出站:用户经 587/465 端口认证提交 → Rspamd 加 DKIM 签名 → Postfix 按收件域投出。实测一封经认证提交的邮件在信头成功附加 DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mail。
  • 收信:客户端经 143(STARTTLS)或 993(IMAPS)访问 Dovecot 读取 Maildir。实测 IMAP 登录回显文件夹列表 Drafts / Junk / Trash / Sent / INBOX。

3.3 配置体系

配置分三层,均落在宿主机数据目录、随数据一起持久化:

  1. mailserver.env:声明式总开关(启用哪些组件、TLS 证书方式、时区等);
  2. config/ 下账号与域数据:postfix-accounts.cf、postfix-virtual.cf、dovecot-quotas.cf 等,由 setup.sh 维护;
  3. 细粒度覆盖:config/postfix-main.cf、config/dovecot.cf 与 config/rspamd/override.d/,分别覆盖 Postfix 主配置、Dovecot 配置与 Rspamd 模块配置。

三层在服务启动与运行中由内部变更探测机制热加载(账号/别名/配额/Rspamd 覆盖实时生效;Postfix/Dovecot 主配置在实例重建时应用——这一实测差异与生效边界详见《docker-mailserver 16.0.1 配置参数详解》)。

四、功能特性

以下功能均来自 v16.0.1 实测验证(逐项操作与回显收录在配套文档),setup.sh help 的完整子命令树实测节选如下:

COMMAND := { email | alias | quota | dovecot-master | config | relay | debug } SUBCOMMAND

[SUB]COMMANDS
    COMMAND email :=
        setup email add <EMAIL ADDRESS> [<PASSWORD>]
        setup email update <EMAIL ADDRESS> [<PASSWORD>]
        setup email del [ OPTIONS... ] <EMAIL ADDRESS> [ <EMAIL ADDRESS>... ]
        setup email restrict <add|del|list> <send|receive> [<EMAIL ADDRESS>]
        setup email list
    COMMAND alias :=
        setup alias add <EMAIL ADDRESS> <RECIPIENT>
        setup alias del <EMAIL ADDRESS> <RECIPIENT>
        setup alias list
    COMMAND quota :=
        setup quota set <EMAIL ADDRESS> [<QUOTA>]
        setup quota del <EMAIL ADDRESS>
    COMMAND dovecot-master :=
        setup dovecot-master add <USERNAME> [<PASSWORD>]
        setup dovecot-master update <USERNAME> [<PASSWORD>]
        setup dovecot-master del [ OPTIONS... ] <USERNAME> [ <EMAIL ADDRESS>... ]
        setup dovecot-master list
    COMMAND config :=
        setup config dkim [ ARGUMENTS... ]
    COMMAND relay :=
        setup relay add-auth <DOMAIN> <USERNAME> [<PASSWORD>]
  • 账号与域管理:多邮件域、无限账号、别名、配额、只读收发限制(email restrict)、管理员级 dovecot-master 账号;账号数据文件化存储,另有 LDAP 提供方可选。
  • 邮件认证三件套:setup config dkim 一条命令生成 RSA-2048 DKIM 密钥并输出 DNS 记录;SPF/DMARC 由 Rspamd 校验并写 Authentication-Results 头;实测 pass/softfail/fail 三种结果与对应处置(投递/改投 Junk/拒信)全部复现。
  • TLS:SSL_TYPE=manual/letsencrypt 等方式接入证书,STARTTLS 与 IMAPS 同时生效(实测 openssl s_client 握手 TLSv1.3)。
  • 认证爆破防护:内置 fail2ban 集成,实测 6 次错误密码后来源地址被封禁、setup.sh fail2ban unban 一条命令解封。
  • 垃圾自动分拣:Rspamd 评分联动 Sieve,垃圾邮件自动归档 Junk(实测回显文件夹为 \HasNoChildren \Junk)。
  • 中继与转发:setup relay 系列配置上游中继与凭据;对非本域收件人默认拒绝中继(实测 Relay access denied),防开放中继。
  • 运维命令面:postqueue、doveadm、rspamc 等原生工具全部可用(巡检、队列管理、配额查询、DKIM 校验均有实测回显)。

五、快速上手

以下最小示例引自官方文档站快速开始页(https://docker-mailserver.github.io/docker-mailserver/latest/,2026-10-18 查询,未在本文重复实测;逐段解析与完整实测流程见《docker-mailserver Docker Compose 部署指南》)。docker-mailserver 的官方交付形态即 Compose 编排文件加管理脚本,示例如下:

services:
  mailserver:
    image: ghcr.io/docker-mailserver/docker-mailserver:latest
    container_name: mailserver
    hostname: mail.example.com
    ports:
      - "25:25"
      - "143:143"
      - "465:465"
      - "587:587"
      - "993:993"
    volumes:
      - ./docker-data/dms/config/:/tmp/docker-mailserver/
      - ./docker-data/dms/mail-data/:/var/mail/
      - ./docker-data/dms/mail-state/:/var/mail-state/
      - ./docker-data/dms/mail-logs/:/var/log/mail/
      - /etc/localtime:/etc/localtime:ro
    restart: always
    stop_grace_period: 1m
    cap_add:
      - NET_ADMIN
    healthcheck:
      test: ["CMD-SHELL", "dms healthcheck"]

官方最小三步:docker compose up -d 启动 → curl -sSL https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master/setup.sh | sh -s -- -c mailserver email add user@example.com <密码> 创建账号 → 配置 MX/SPF/DKIM/DMARC 记录后即可收发。官方文档另有一个实测确认过的重要行为:全新空环境启动后只有 120 秒的账号创建窗口(实测日志:You need at least one mail account to start Dovecot (120s left for account creation before shutdown)),窗口期内未创建任何账号则服务自动停机,避免空跑。

六、适用场景与限制

适用场景(与实测行为对应):

  • 个人与中小团队自托管邮箱:域名邮箱收发、IMAP 客户端接入,账号规模在数百以内;
  • 系统邮件与业务通知出口:给业务系统一个带 DKIM 签名、能通过 SPF/DMARC 校验的发信出口;
  • 有既有基础设施的团队:已有证书、已有 DNS 控制权、已有一台长期在线的服务器,希望邮件服务"装完就不用管"。

明确限制(实查与实测归纳):

  • 单主机单实例架构:不支持多节点水平扩展与高可用(数据目录含套接字与数据库文件,双活需谨慎),容灾靠备份恢复(见《docker-mailserver 日常运维手册》);
  • 无内置 Webmail 与图形管理界面:一切通过 setup.sh 与原生命令完成,需要 Web 界面的场景选 mailcow/Mailu;
  • 依赖 DNS 控制权:MX/SPF/DKIM/DMARC 记录必须可自行发布,否则认证链路无法闭环;
  • 25 端口受托管商限制:云厂商普遍限制入站 25 端口,部署前需确认解封策略;
  • 内存占用实测约 1.1 GiB(开启 Rspamd + ClamAV 后,docker stats 实测 1.164 GiB),低配 1 GB 机型不适合开启全套反垃圾反病毒。

七、同类选型对比

四款主流同类方案的关键数据均于 2026-10-18 通过 GitHub API 实查(Stars/许可/最近推送),定位与形态为各项目官方文档口径:

方案Stars(实查)许可架构形态管理界面版本节奏(近期)定位
docker-mailserver 16.0.119,609MITPostfix+Dovecot+Rspamd 集成,声明式配置无(CLI)v16.0.1 2026-09-04极简自托管,命令行管理
Stalwart(stalwartlabs/stalwart)15,140仓库未标注标准 LICENSE 文件(API 实查)单二进制自研全套(SMTP/IMAP/JMAP)内置 Web 管理持续高频发布(2026-10-15 仍在推送)资源敏感、新协议诉求
mailcow-dockerized13,631GPL-3.0多组件套件 + SOGo Webmail完整 Web 管理台2026-10-15 仍在推送要界面与 Webmail 的团队
Mailu7,559自定义开源许可(仓库标注,API 识别为非标准类型)多组件套件 + WebmailWeb 管理2026-10-17 仍在推送轻量服务套件
iRedMail1,848GPL-3.0裸机脚本安装多组件基础面板(免费版受限)2026-10-14 仍在推送传统服务器直装

选型建议(如果…则…):

  • 如果只求"一台服务器把邮件跑起来、用命令行管理、最小依赖",选 docker-mailserver:MIT 许可无商业顾虑,配置面小、可全部纳入版本管理,社区热度最高;
  • 如果强烈需要 Web 管理台与 Webmail 一体化,选 mailcow(功能全但资源要求更高)或 Mailu(更轻);
  • 如果追求极致资源占用或需要 JMAP 协议,选 Stalwart(单二进制,但要接受较新的技术栈与许可状态);
  • 如果是传统虚拟机直装、不使用编排工具,选 iRedMail;
  • 如果邮件只是业务系统的一个出站功能而非完整邮箱服务,可先评估中继网关方案,docker-mailserver 亦常作为"认证提交 + DKIM 签名出口"承担这一角色(setup relay 中继配置有实测)。

八、参考链接

  • 官方仓库:https://github.com/docker-mailserver/docker-mailserver
  • 官方文档(快速开始):https://docker-mailserver.github.io/docker-mailserver/latest/
  • 环境变量说明:https://docker-mailserver.github.io/docker-mailserver/latest/config/environment/
  • 发布页:https://github.com/docker-mailserver/docker-mailserver/releases
  • FAQ:https://docker-mailserver.github.io/docker-mailserver/latest/faq/