开源了一个自研引擎的邮件系统 Mailez,单二进制跑完整邮件栈

Hifone 2026-09-14 12:29 1

做了一年多、最近刚发 1.0.0 的项目:Mailez( GitHub 同名镜像),一个自托管邮件系统。不一样的地方在于邮件核心不是拿 Postfix / Dovecot / Roundcube 拼的,四个协议( SMTP / IMAP / POP3 / ManageSieve )全部自己实现,装进一个 Go 二进制(我们叫它 Mailezine )。


Mailez


起因很简单:给自己域名搭邮箱,跟了一圈传统方案的文档,被 main.cf 和 dovecot.conf 劝退了。与其学一套上世纪的配置哲学,不如自己写一个——反正 RFC 都摆在那。


为什么敢自己写



  • 邮件协议看着老,但 RFC 写得相当清楚,IMAP 的扩展( CONDSTORE / QRESYNC / SORT / ACL )都有明确语义

  • 收发、存取、过滤在一个进程里完成,没有组件间的 socket 往返,部署面小、故障面也小

  • 存储做了可插拔:单机 Pebble KV + 本地文件起步,换 TiDB + S3 就能水平扩展,同一份引擎代码


实测数据(同机 A/B ,10,000 人负载模型)




































指标 传统拼装栈 Mailezine 提升
收件吞吐 3.1 msg/s 13.6 msg/s 4.4×
入队→投递 p50 35.6 s 5.30 s 6.7×
整栈空闲内存 ~162 MiB ~6.4 MiB 约 1/25
高负载队列积压 122 封 0 封

基准方法和脚本都放在仓库里,欢迎复现打脸。


顺手解决的一些事



  • 管理后台带域名健康检查:MX / SPF / DMARC / DKIM 公钥比对 / Spamhaus 黑名单逐项体检,DNS 向导直接告诉你该发哪 9 条记录,上线照抄

  • Webmail 按原生应用的思路写的:三栏、会话视图、快捷键、PWA 离线

  • 中文搜索做了双字切分,全文索引随投递自动维护

  • 附件全文搜索接 Tika ,PDF / Office 都能搜


也不避讳说缺点



  • 云服务器出站 25 端口被封是行业现状,哪个自建方案都躲不开(要么申请解封要么走中继,我们在文档里写了一整节)

  • 反垃圾默认是内置基线(计分 + DNSBL + 名单),重型场景还是要外接 Rspamd

  • 协议兼容性靠主流客户端 + 一套 e2e 回归撑着,冷门客户端没测全,遇到 issue 提给我


AGPL-3.0 ,Docker 一条命令起:


./install.sh   # 或 ./deploy/mailezctl.sh up ce

在线演示: https://mail.mailez.cn (账号联系 QQ 58786482 或 [email protected]
源码: https://gitee.com/mailez-hq/mailez · https://github.com/mailez-hq/mailez
文档: https://mailez.net
QQ 交流群:656868 (备注 Mailez )


有问题可以在评论区直接交流,我一直在。

最新回复 (3)
  • miscnote 09-14 13:28
    1
    LZ 很强大。想起我一个前同事,独自捐献了个邮件相关项目给 Apache.org 十几年前就是 APACHE 顶级项目。
    我的邮件服务,还是基于传统老几样搞的,没什么亮点,胜在稳定。
    blog.xyamail.com
  • 413420 09-14 13:39
    2
    邮件天然有可被监视属性,在意点隐私,就要做到在中国用外国服务,特别忌讳国人主导的项目,op 和 1 楼都是这样的劣势情况
  • Hifone 楼主 09-14 16:47
    3
    @miscnote 你的邮件服务很赞,很简洁。
* 帖子来源V2EX
返回