本来一直在用阿里云的企业邮箱,但感觉总是不太好,主要每次都需要进https://qiye.aliyun.com登录。于是趁着黑色星期五RackNerd的优惠,搞了一台 vps 来搭电子邮局(如果你想搭建,请确认服务器是否支持 rDNS 以及是否开启 25 端口)。
配置如下(年付 $10.28)
| 硬件 | 配置 |
|---|---|
| CPU | 1 核 |
| RAM | 768MB |
| SSD | 10GB |
| 流量 | 1TB |
还是比较磕碜的,不过价格在这,无所谓了。
经历
首先,我需要为 vps 开通 rDNS 记录到mx.ordchaos.com上。后台可以自主设置,很方便…

好,很好,我沉得住气。发个工单问一下:

哦!原来如此!好的,继续交流后,rDNS 设置成功,但然而我却发现无法访问?!一番探查之后,发现这样一个事实 —— 被墙啦!
于是只得继续发工单:

终于搞定。
Mailu.io 部署
设置主机名
在 vps 的 bash 中输入:
nano /etc/hosts在其中具有服务器 ip 地址的一行中,将后面的内容改为(假设你的域名是example.com,服务器 ip 是88.88.88.88):
88.88.88.88 mx.example.com mx编辑好后,在 vps 中执行:
echo "mx" > /etc/hostname
hostname -F /etc/hostname这样就设置好了主机名,可以通过hostname命令确认是否设置成功:
hostname
hostname -f前者只会输出mx,后者则会输出mx.example.com。如果不是,那就是设置错了。
设置 DNS 解析
去你的域名 DNS 解析服务商,设置以下 DNS 解析(假设你的域名是example.com,服务器 ip 是88.88.88.88):
| 主机名 | 解析类型 | 内容 |
|---|---|---|
| @ | A | (如果已有解析就不管,没有就解析到 127.0.0.1,注意不能有 CNAME 记录) |
| mx | A | 88.88.88.88 |
| @ | MX | mx.example.com(优先级为 10) |
| @ | TXT | v=spf1 mx a:mx.example.com ~all |
| _dmarc | TXT | v=DMARC1; p=reject; rua=mailto:admin@example.com; ruf=mailto:admin@example.com; adkim=s; aspf=s |
| example.com._report._dmarc | TXT | v=DMARC1 |
然后去 vps 服务商,设置 rDNS(或者叫做 PTR)解析,将88.88.88.88解析到mx.example.com
获取配置
访问 Mailu.io 的配置生成网页:https://setup.mailu.io

写文时最新版本为 1.9,保持不变。下方部署方式选择 Compose.

1:在此处填写自己的域名
2:自己起个名字(如 “序炁的电子邮局”)
3:若你的域名为
example.com,则在此处填写https://mx.example.com4:点击勾选

1:推荐选择 rainloop,更加现代好看
2:填写自己 vps 的 ip 地址
3:若你的域名为
example.com,则在此处填写mx.example.com
最后,你会看到如下界面:

照着界面的指示,回到 vps 执行指令:
mkdir /mailu
cd /mailu然后回到刚刚的页面,下载配置文件:
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/docker-compose.yaml
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/mailu.env最后执行(假设你的域名是example.com,密码设置为PASSWORD):
docker-compose -p mailu up -d
docker-compose -p mailu exec admin flask mailu admin admin example.com PASSWORD就安装完成了。
配置
在浏览器中访问https://mx.example.com登录您的管理员面板:

使用账号admin@example.com和密码PASSWORD登录即可(假设你的域名是example.com,密码设置为PASSWORD)。
然后点击左侧的 “邮件域”:

然后点击如下的按钮:

在新界面中点击 “生成密钥”,然后复制 dkim 配置:
dkim._domainkey.example.com. 600 IN TXT "v=DKIM1; k=rsa; p=xxxxxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"进行域名解析即可。
创建账号
邮件域 > 用户 > 添加用户,按需配置即可。
使用
退出管理员账号,访问https://mx.example.com/webmail,登录即可(选择 “登录 Webmail”)。

测试
在MailTester上可以进行测试,如下是我测试结果:

很完美了,对吧(
以前没有超过 8 过
题外话
完成了很久以前的夙愿。
欢迎跟着做一遍哦!也欢迎提问!
2024.2.12 更新
用一段时间后服务器会出现 403,此时重启 docker 即可。
有关于自动重启,参考这篇文章:使用 Github Action 定时重启邮件服务