Linux 使用 mailu 安装邮件服务器
心血来潮想搭个自己的邮箱服务器,顺便记录一下.
本来试着用了 docker-mailserver 和其他的 mail 服务器,但是要么安装有问题,要么需要的性能太高,而鼠鼠的垃圾服务器只有 2C2G, 只好选 mailu 2.0 这个轻量级了
环境:
Linux 系统,必须带公网 IP, 内存 1G 及以上
推荐用干净的环境装
不过我的服务器裸机安装了 nginx 等套件占了 80 端口,就不得不做反向代理来避免端口占用了,下面会介绍
环境准备
主机设置
- 确保 25 端口以及其他端口开放 (防火墙端口和云服务器的端口), 可以用如下命令之一来测试
1 | # 腾讯qq邮箱 |
还要测试其他端口,主要涉及的如下
1 | netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995' |
- 设置主机名,推荐使用 mail.your-domain, 假设域名为 example.com
可以用如下命令
1 | sudo hostnamectl set-hostname mail.example.com |
DNS 设置
假设你的 IP 是 1.1.1.1, 域名 example.com 为例:
设置 A 记录,主机记录 mail.example.com
, 值 1.1.1.1
设置 MX 记录,主机记录为 example.com
, 值为 mail.example.com
设置 SPF 记录,也可以是 TXT 记录,主机记录 example.com
, 值为 v=spf1 a mx ip4:<your-ip> ~all
设置 DMARC 的 TXT 记录,主机记录是_dmarc
, 值为 v=DMARC1; p=none; pct=100; rua=mailto:admin@example.com
最后有个 dkim._domainkey
要安装好了配置,待会儿说
记得修改其中的 example.com 为自己的域名
docker 环境
推荐一键安装
1 | sudo curl -fsSL https://get.docker.com > get-docker.sh |
之后可能要配置一下 docker 镜像源 (可以看我文章), 或者科学上网 (可以看我文章), 不多解释
下载 mailu
需要改一下自己的域名
然后 TLS 加密方式选择 letsencrypt (服务器干净时用,如果已经有其他环境了请如图选择 mail-le)
然后改网站名称和 URL
step2 的 client 最好选 snappy, 支持中文,另外的不支持中文
然后看情况勾上功能插件,性能好就多勾,性能差就不勾,都不影响的
step3 填自己公网 IP
然后最好 enable unbound, 不然自己配置会很麻烦
然后 hostname 填上面设置的主机名
提交即可,根据提示执行如下命令 (可能需要 root 或者 sudo, 自己加) 下载 docker-compose 文件
1 | mkdir /mailu |
安装 mailu
如果需要 nginx 反向代理
服务器干净的可以跳过这步,可以直接看后面的启动部分
如果服务器 80 和 443 已经被占,则需要使用其他端口来跑邮件服务,需要做反向代理
我们在 docker-compose.yml
中找到# Core services
部分
把原本的 80 和 443 改成其他的,比如
1 | ports: |
修改 mailu.env 文件中的 REAL_IP_HEADER 和 REAL_IP_FROM 部分. x.x.x.x 替换为服务器真实 IPv4 地址,如下
1 | REAL_IP_HEADER=X-Real-IP |
然后在 nginx 配置文件里设置反向代理,可以参考如下写法
1 | server { |
启动
配置完成,启动!
1 | docker compose -p mailu up -d |
如果很慢,则需要换镜像源或者科学上网 (教程见上)
正常启动后,添加管理员 admin@example.com 如下
1 | docker compose -p mailu exec admin flask mailu admin admin <example.com> PASSWORD |
不出意外,就可以访问 mail.example.com
登录了
最后配置 DKIM 的 DNS, 在后台的域名管理这里,generate key, 然后按提示设置对应的记录即可
此外,可能需要配置一下域名反向解析 PTR 会让邮件更可信,需要在服务器提供商那里完成,流程自行百度
最后,可以测试一下自己的邮件是否配置完善 https://www.mail-tester.com/
参考文章
https://mailu.io/1.9/reverse.html#have-mailu-web-frontend-listen-locally
https://juejin.cn/post/7260875830201188408
https://www.bilibili.com/video/BV15Z4y1F7uD
https://www.ctmh.top/p/ 安装和配置电子邮件服务端软件 - mailu/
https://einverne.github.io/post/2021/07/email-server-mailu.html