开源邮件服务器Mailu部署

Micheal Chen Lv6

来源:https://zhuanlan.zhihu.com/p/3837150649

选择Mailu做为邮件服务器的几个考虑

  • 占用资源少而使用成本低;
  • 基本功能相对较全而满足使用;
  • 部署和维护相对简易;
  • 开发者有在积极维护;
  • Maiu2.0可以完全自动化配置新域或添加新用户。有同行提到不支持多域,其实是支持的,之前的一些版本中,应该也是支持多域的,至少部署Mailu2.0后发现确实支持多域。
  • 自主建设拥有更多的可操控性,部署完成后一般维护量比较少。

准备

首先,选定待安装的服务器,确认25端口是否打开,这里采用Ubuntu系统。

检查方式是用 telnet 测一下 比如 telnet http://mx1.qiye.aliyun.com 25 (把中间的域名换成你的IP)。

正常情况下,你会是一直 trying,因为大部分厂商都是把25端口关掉的。这时候你需要去控制台提工单或者联系客服开通,开通成功后再测试,就会是如下图,只要不是trying,就是可以了。

域名解析

创建一个A记录,记录为 mail,值为你的IP,然后创建一个MX,记录为 @, 值为之前创建的mail 大概就是这样

Mailu 安装

mailu 提供了一个网页来辅助生成配置,访问 https://setup.mailu.io/ 需要开放的端口如下

1
2
3
4
5
6
7
8
9
10
- "88:80"
- "445:443"
- "25:25"
- "465:465"
- "587:587"
- "110:110"
- "995:995"
- "143:143"
- "993:993"
- "4190:4190"

配置1

生成命令

启动容器

正常是会报错,因为会本地的80端口和443端口占用了

需要重新映射下,这里将80映射到88端口,443映射到445,其他不变

使用外部反向代理

参考:https://mailu.io/2.0/reverse.html

Nginx配置添加如下:在配置文件中

1
2
3
4
5
6
7
8
9
10
11
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass https://localhost:445;
}

location ~* ^/(admin|api|sso|static|webdav|webmail|(apple\.)?mobileconfig|(\.well\-known/autoconfig/)?mail/|Autodiscover/Autodiscover) {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass https://localhost:445;
}

搭建完成:访问

测试邮件收发,正常。

可以添加多个域名,在mailu.env文件中的HOSTNAMES添加,多个以,分隔, 重启服务

1
docker compose -p mailu up -d

至此,邮件服务器部署完成。

部分数据维护指令

  • 迁移邮件数据后重建索引
1
2
3
4
5
while read u; do \
echo "re-indexing $u"; \
docker exec mailu-imap-1 imap doveadm index -u $u '*' </dev/null; \
done \
< <(docker exec mailu-imap-1 doveadm user '*')
  • Title: 开源邮件服务器Mailu部署
  • Author: Micheal Chen
  • Created at : 2025-05-10 14:59:26
  • Updated at : 2025-05-18 17:11:14
  • Link: https://www.xhis.com/hexo/2025/05/10/开源邮件服务器Mailu部署/
  • License: This work is licensed under CC BY-NC-SA 4.0.
On this page
开源邮件服务器Mailu部署