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