Mail-in-a-Box v77 介绍与选型指南

Mail-in-a-Box v77 纯联网溯源认知篇:整机式一键邮件服务器定义与官方立场、安装流水线与组件矩阵、面板/API/CLI 三位一体管理面、适用场景与官方限制,并与 Mailcow、docker-mailserver、Stalwart、Postal、Maddy、iRedMail 六款同类组件量化对比给出选型建议(数据查询日期 2026-10-21)。

Mail-in-a-Box邮件服务器Mail-in-a-Box2026/10/21

Mail-in-a-Box v77 介绍与选型指南

目标:面向准备自托管邮件服务的读者,讲清 Mail-in-a-Box 是什么、由哪些组件构成、能做什么、不能做什么,并在与 Mailcow、docker-mailserver、Stalwart、Postal、Maddy、iRedMail 等同类自托管邮件组件的量化对比中给出选型建议。本文为认知与选型篇,全部事实性信息均溯源至官方渠道,查询日期为 2026-10-21,本地未做任何运行验证。

一、环境信息

本文是纯联网溯源的认知篇,不涉及本地运行验证。文中所有版本号、星数、发布日期、官方立场均来自下列来源,统一于 2026-10-21 查询:

二、软件概述

Mail-in-a-Box 的官方定义(摘自仓库 README,2026-10-21 查询):

Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.

即:一个"开机即用"的邮件服务器整机方案——在一台全新的 Ubuntu 22.04 LTS 64 位机器上执行一条命令,脚本就会把 Postfix、Dovecot、Webmail、DNS、管理面板等一整套组件安装并配置完毕,产出一台可以直接收发邮件、拥有 Web 管理界面的邮件服务器。官方在 README 中强调它的两个鲜明特征:

  • 一键装置(appliance):"It is a one-click email appliance. There are no user-configurable setup options."——没有面向用户的可配置安装选项,安装过程只询问邮箱地址、主机名、公网 IP 三个问题,其余全部自动决策。
  • 明确不做的事:README 的目标清单里写明 "Not make a totally unhackable, NSA-proof server"、"Not make something customizable by power users"——它追求"简单、可靠、开箱即用",而不是极致安全或极致可定制。

项目基本信息一览(来源见括号内标注,均为 2026-10-21 查询值):

项目信息来源
维护方Josh Tauberer(GitHub @JoshData)与社区贡献者仓库 README
开源许可CC0 1.0 Universal(公有领域贡献)仓库 LICENSE 文件
最新稳定版v77(2026-09-26 发布,更新 Roundcube 1.6.19 修复多个安全问题、Nextcloud 27.1.11 并修复安装失败)GitHub releases.atom
版本节奏v75(2026-04-20)→ v76(2026-05-24)→ v77(2026-09-26),一年内稳定更新GitHub releases.atom
GitHub 星标15kshields.io 星标徽章
最近代码提交2026-09shields.io last-commit 徽章
官方支持系统仅 Ubuntu 22.04 LTS(安装脚本按 lsb_release 严格判别)仓库 setup/bootstrap.sh
官方发行形态仅 Ubuntu 一键安装脚本;官方不提供 Docker/容器发行仓库与官网安装指南

💡 说明:官方安装脚本 bootstrap.sh 里硬编码了版本映射——Ubuntu 22.04 机器安装 TAG=v77,Ubuntu 18.04 机器则回落到 v57a 并提示"支持即将结束,请尽快迁移到 22.04"。也就是说组件版本与操作系统版本是绑定的,这是整机式方案的典型做法。

三、核心架构

Mail-in-a-Box 的架构可以用一句话概括:用一份幂等的 Bash 脚本集,把十几个成熟开源组件装配到一台机器上,并用一个自研的 Python 管理守护进程统一驱动它们。以下架构事实均来自仓库源码目录结构(setup/、management/、tools/)与 README(2026-10-21 查询)。

3.1 安装流水线

安装入口是官方托管的一行命令(详见第五节),其背后是一条固定顺序的配置流水线,按 setup/start.sh 的调度依次执行(目录名为仓库 setup/ 下的实际脚本):

顺序脚本职责
1preflight.sh前置校验:root 身份、必须 Ubuntu 22.04、内存 ≥512MB、/tmp 未挂 noexec、x86_64 架构
2questions.sh三个安装问题:管理员邮箱、主机名(默认 box.<域名>)、公网 IP(自动探测)
3system.sh系统底座:写 /etc/hostname、不足 2GB 内存时创建 1GB /swapfile、启用 universe 仓库、添加 ondrej/php 与 duplicity PPA、apt 升级
4ssl.sh + network-checks.shLet's Encrypt 证书体系;Spamhaus 黑名单与出站 25 端口检查
5dns.sh安装 nsd4 权威 DNS,为托管域名自动生成 SPF/DKIM/DMARC/DNSSEC/DANE/MTA-STS/SSHFP 等记录
6mail-postfix.sh / mail-dovecot.sh / mail-users.shSMTP、IMAP/LMTP/Sieve 与账号体系(SQLite 存储)
7dkim.sh / spamassassin.shOpenDKIM 签名、SpamAssassin 过滤 + postgrey 灰名单
8web.sh / webmail.sh / nextcloud.sh / zpush.shnginx 静态站点、Roundcube Webmail、Nextcloud(文件/日历/联系人)、Z-Push ActiveSync
9management.sh / munin.sh管理守护进程(gunicorn 承载的 Flask 应用,监听 127.0.0.1:10222)与 munin 监控
10firstuser.sh创建首个管理员邮箱账号

3.2 组件矩阵

能力组件说明
SMTP 收发Postfix含出站中继、TLS、SASL 认证
IMAP/SieveDovecot邮箱存储、过滤规则、配额
WebmailRoundcube由 nginx 托管
日历/联系人/文件Nextcloud同机部署,账号与邮件系统打通
移动端同步Z-PushExchange ActiveSync 协议
权威 DNSnsd4本机即托管域名的权威服务器
反垃圾SpamAssassin + postgrey内容过滤 + 灰名单
邮件签名OpenDKIMDKIM 签名与校验
TLS 证书certbot(Let's Encrypt)自动签发、自动续期
备份duplicity每日增量加密备份,支持本地/S3/B2
安全防护ufw + fail2ban防火墙 + 入侵防护
监控munin基础资源监控
管理面板/API自研 management daemon(Python3 + Flask + gunicorn)面板地址 https://<主机名>/admin

数据根目录固定为 STORAGE_ROOT=/home/user-data(默认值,安装问题阶段可沿用),邮件账号存于其中的 SQLite 数据库,证书、DKIM 密钥、DNSSEC 密钥、备份加密密钥、Nextcloud 数据等全部收敛在该目录下——这个设计让整机迁移简化为"备份/恢复一个目录"。

3.3 管理面:面板、API 与 CLI 三位一体

管理守护进程是整个方案的中枢,提供三种等价的管理入口(源码 management/daemon.py、management/cli.py、api/mailinabox.yml,2026-10-21 查询):

  1. Web 控制面板:https://<主机名>/admin,nginx 反代到本地守护进程,用管理员邮箱账号登录;
  2. HTTP API:仓库随附 OpenAPI 3.0 规范(api/mailinabox.yml),40 个端点覆盖邮件用户、别名、DNS 记录、TLS 证书、系统状态、备份配置、MFA 等,Basic 认证;
  3. 命令行:management/cli.py,本质是 API 的命令行薄封装,提供 user/alias 两族子命令。

此外守护进程每日凌晨执行 management/daily_tasks.sh:跑备份、跑全量状态检查(DNS/TLS/端口/黑名单/磁盘),有异常就发邮件给管理员——这是官方宣称 "comprehensive health monitoring" 的落地。

四、功能特性

以下特性清单摘自 README 与官方安装指南(2026-10-21 查询):

  • 完整邮件栈:SMTP 收发、IMAP 邮箱、Sieve 过滤规则、邮件客户端自动配置(autoconfig/autodiscover 记录由 nginx 提供);
  • 自动 DNS 安全记录:SPF、DKIM、DMARC、DNSSEC、DANE TLSA、MTA-STS、SSHFP 全部自动生成——这是它最突出的差异化能力,手工维护这些记录是自托管邮件最繁琐的部分;
  • 全自动 TLS:Let's Encrypt 签发的证书覆盖 HTTPS、SMTP、IMAP 等全部服务;
  • 反垃圾闭环:SpamAssassin 内容过滤 + postgrey 灰名单 + SPF/DKIM/DMARC 校验;
  • 协作套件:Nextcloud 提供 WebDAV 文件、CalDAV/CardDAV 日历联系人,Z-Push 提供 Exchange ActiveSync 移动端推送;
  • 运维自动化:每日健康检查(服务/端口/证书/DNS 记录/黑名单)、duplicity 加密增量备份、ufw 防火墙、fail2ban 爆破防护、munin 图形监控;
  • 多域名与多账号:面板中可添加多个托管域名与不限量邮箱账号、别名,支持邮箱配额(quota);
  • 账号安全:支持 TOTP 双因素认证(MFA),API/面板登录均可启用;
  • 国际化域名:支持 IDN 域名的简易配置(README 注明 SMTPUTF8 暂不支持)。

五、快速开始(最小可用示例)

官方推荐的安装方式只有一条命令(摘自官方安装指南 guide.html,2026-10-21 查询):

curl -s https://mailinabox.email/setup.sh | sudo bash

执行后脚本依次询问三个问题:要管理的邮箱地址(如 me@example.com)、主机名(官方建议 box.example.com 风格,即"box."前缀 + 邮箱域名)、公网 IP(脚本会自动探测,NAT 环境下需手动确认)。安装完成后:

  • 管理面板:https://box.example.com/admin(DNS 未生效前可用 https://<公网IP>/admin 访问,浏览器提示证书告警属正常);
  • 首个管理员账号即安装时填写的邮箱地址。

💡 说明:官方前提是"一台 100% 全新、独占的 Ubuntu 22.04 LTS 机器"。安装脚本会移除 apache2 等冲突服务、接管系统 DNS 与主机名,不适合与已有业务混装。完整的分步安装实录(含每一步真实命令回显与排障过程)见本专栏部署篇 《Ubuntu 22.04 安装 Mail-in-a-Box 指南》。

六、适用场景与限制

6.1 适合的场景

  1. 个人或小团队的自有邮箱:想要 自己@自己的域名 的邮箱,且希望数据完全在自己手里——这正是项目 README 的第一句承诺;
  2. 一台云主机跑齐全套:官网安装指南明确按"一台 24/7 在线的云虚拟机"设计,估算成本约 $12/月(2026-10-21 查询自 guide.html),家人朋友可共用分摊;
  3. 讨厌手工调 DNS 记录:SPF/DKIM/DMARC/DNSSEC 全自动生成,对"照着文档逐条加 DNS 记录"深恶痛绝的用户收益最大;
  4. 愿意把 DNS 托管交给盒子:官方指南建议让盒子接管域名 DNS(也可手工保持外部 DNS 并同步记录,但维护成本自担)。

6.2 明确的限制(官方立场)

限制官方依据
仅支持全新、独占的 Ubuntu 22.04 LTS,不与现有业务混装安装指南 "Mail-in-a-Box must be installed on a fresh machine" + bootstrap.sh 版本判别
官方不提供 Docker/容器化发行官方仓库与官网仅有 Ubuntu 一键脚本一种安装形态
不能部署在家庭宽带安装指南 "Can I run my Mail-in-a-Box at home? No."——住宅网络 25 端口普遍被封且 IP 信誉差
无集群/高可用方案官方文档与仓库均未提供多节点部署形态
面向收发邮件,不适合批量/营销发送组件构成(Dovecot/IMAP 邮箱栈)与官方定位;批量发送场景应选 Postal 类专用 MTA
IP 信誉是硬前提安装脚本内置 Spamhaus 黑名单检查,命中即拒绝安装(本站部署篇有真实命中实录)
定位"不是给 power user 深度定制的"README 目清单 "Not make something customizable by power users"

七、同类选型对比

自托管邮件组件按形态可分四类:整机一键脚本(Mail-in-a-Box、iRedMail)、容器编排全家桶(Mailcow、docker-mailserver)、现代单二进制(Stalwart、Maddy)、专用投递 MTA(Postal)。下表为量化对比(星数为 shields.io 2026-10-21 查询值;版本为各组件本站专栏实测成文版本;形态与能力描述以各专栏实测为准):

组件(本站专栏实测版本)GitHub 星标发行形态目标场景管理方式邮箱/Webmail/日历全家桶本站专栏
Mail-in-a-Box v7715kUbuntu 22.04 一键脚本(独占整机)个人/小团队自有邮箱,省心优先Web 面板 + API + CLI全(Roundcube + Nextcloud + ActiveSync)本文
Mailcow 2026-09a14kDocker Compose 容器编排小中型团队,要精致面板与容器隔离Web 面板(功能最全)全(SOGo webmail + ActiveSync)《Mailcow 2026-09a 介绍与选型指南》
docker-mailserver 16.0.120kDocker Compose 容器编排极客/已有运维体系,配置即代码CLI 工具(无自带面板)邮件核心(webmail 外接)《docker-mailserver 16.0.1 介绍与选型指南》
Stalwart v0.16.2615kRust 单二进制(原生安装/容器)追求现代协议(JMAP)与单进程低占用Web 管理邮件核心 + JMAP(webmail 外接)《Stalwart v0.16.26 介绍与选型指南》
Postal 3.3.717kDocker Compose / 自托管应用触发的事务性/批量邮件发送Web 面板无个人邮箱栈(非 IMAP 服务器)《Postal 3.3.7 介绍与选型指南》
Maddy 0.9.66.1kGo 单二进制低资源轻量 SMTP+IMAP 一体配置文件(无面板)邮件核心(极简)《Maddy 0.9.6 介绍与选型指南》
iRedMail 1.8.81.8kUbuntu/Rocky 一键脚本(独占整机)中小企业整机邮箱,组件可换Web 面板(iRedAdmin)全(SOGo/Roundcube 可选)《iRedMail 1.8.8 介绍与选型指南》

关键差异与选型建议:

  • 要"最省心的一台机全家桶":Mail-in-a-Box 与 iRedMail 同属整机脚本路线。Mail-in-a-Box 的自动化 DNS 安全记录与每日健康检查更彻底,但系统锁定 Ubuntu 22.04 且无组件可换;iRedMail 支持 Ubuntu/Rocky 双系、组件(SOGo/Roundcube/ClamAV 等)可选,灵活度更高。二者都要求独占整机。
  • 要容器化、可与其他业务共存:选 Mailcow(面板精致、全家桶完整)或 docker-mailserver(无面板、轻量可控、社区星标最高)。本站两篇专栏均有从零部署实录。
  • 要现代协议与低占用:Stalwart 单二进制内置 JMAP,是四类中架构最新的;Maddy 更轻但功能面窄。两者都没有 Nextcloud 式的协作套件。
  • 要给应用发邮件(注册信/通知/营销):这不是 Mail-in-a-Box 的赛道,选 Postal 这类专用投递平台。
  • 公网 IP 信誉提醒(对所有自托管邮件组件一视同仁):部署前先到 Spamhaus 等黑名单自查候选 IP,住宅宽带基本不可行;Mail-in-a-Box 会在安装阶段就替你把这道关。

八、参考链接

  1. 官方网站:https://mailinabox.email
  2. 官方安装指南:https://mailinabox.email/guide.html
  3. 官方代码仓库:https://github.com/mail-in-a-box/mailinabox
  4. 版本发布记录:https://github.com/mail-in-a-box/mailinabox/releases.atom
  5. 官方 API 规范(OpenAPI 3.0):https://raw.githubusercontent.com/mail-in-a-box/mailinabox/api-spec/api/mailinabox.yml
  6. 官方讨论论坛:https://discourse.mailinabox.email/
  7. 站内同族专栏:《Mailcow 2026-09a 介绍与选型指南》、《docker-mailserver 16.0.1 介绍与选型指南》、《Stalwart v0.16.26 介绍与选型指南》、《Postal 3.3.7 介绍与选型指南》、《Maddy 0.9.6 介绍与选型指南》、《iRedMail 1.8.8 介绍与选型指南》