Mailu 是一个开源的邮件服务器,可以使用 Docker 部署安装,后台界面使用 Python & Flask 开发。Mailu 整体比较轻量,使用起来也非常舒服。
个人总结的优点
- Mailu 非常轻量,相较于 [[Mailcow]] 非常轻量简洁
- 自带域名昵称,转发等等常用功能
- 支持两个 Webmail 分别是 roundcube/rainloop
- 自动生成 DKIM/DMARC/SPF 记录
- 可以使用官网的配置,使用 Docker 一键完成安装
建议在开始自建之前先阅读:
并了解常用的 [[SPF]],[[DKIM]],[[DMARC]] 记录的作用。
Prerequisite
系统环境要求:
- 一台 2GB 具有独立 IP 的 VPS,25 端口开放,可以通过
telnet smtp.gmail.com 25
来测试,返回 220 表示可以。- VPS 服务提供商可以设置 rDNS
- VPS 的 IP 最好要比较干净,没有被拉入黑名单
- 一个可以进行配置 DNS 的域名
本文在 Ubuntu 20.04 LTS 上进行。
确保 25 端口开放
可以使用如下命令测试 25 端口是否开放:
telnet smtp.gmail.com 25
如果返回超时需要向主机提供商申请开通 25 端口。
确保如下的端口可用:
netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995'
设置 hostname
以 example.com
为例:
sudo hostnamectl set-hostname mx.example.com
重启之后使用如下命令检查:
hostname
# 应该显示 mx
hostname -f
# 应该显示 mx.example.com
DNS 设置
假设 VPS 的域名是 1.1.1.1
,以 example.com
为例:
- 设置 A 记录,
mx.example.com
到 VPS IP 地址1.1.1.1
- 设置 SPF,TXT 记录,值为
v=spf1 mx ~all
- DMARC,
_dmarc.example.com
TXT 记录,值为v=DMARC1;p=none;pct100;rua=mailto: [email protected];ruf=mailto: [email protected]
记得修改其中的 [email protected]
为自己的域名。
设置 PTR 反向域名解析
这一步需要在 VPS 提供商后台进行设置,有一些服务器商不支持用户自行修改,那么需要用户 open ticket 来咨询,并设置 IP 到域名的解析记录。
设置完成之后可以通过 dig -x IP
来查看是否生效。
安装 Docker 和 docker-compose 命令
可以参考 Docker 官网安装。
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
systemctl start docker
systemctl enable docker
安装 Docker Compose
curl -fsSL https://get.docker.com | bash -s docker
curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Mailu 配置
Mailu 官方提供了一个自动配置生成网页
可以选择两种 Webmail
将配置下载之后查看配置,然后使用 Docker Compose 安装
docker-compose up -d
安装成功后:
- 后台地址: http://example.com/admin
- Webmail 地址: http://example.com/webmail
等待服务启动之后,登录后台,然后进行一定初始化配置。然后在界面中添加域名。
添加域名
在后台添加域名:
配置 DNS 解析
登录后台之后,点击 Mail Domains,然后在列表也点击最前面的按钮,进入域名详情之后点击右上角的 Regenerate Keys
生成 [[DKIM]] 和 [[DMARC]] 记录。
然后按照界面显示的内容,将 DNS 记录更新到域名的 DNS 中,等待一段时间生效即可。
设置 DKIM
添加域名后在后台找到 DKIM,将其值拷贝出来,到 Cloudflare,或者任何 DNS 服务提供商添加 DKIM
添加信箱
在域名界面添加用户邮箱,这个用户邮箱之后就可以通过 [[webmail]] 来登录,发信或者收信。
发信测试
最后可以使用 https://www.mail-tester.com/ 来发信测试。
More
如果你不想自己搭建邮件服务器,那么也可以选购 EV Hosting 推出的域名邮箱托管服务,可以以极低的价格获得无限域名无限邮箱服务。
目前我个人维护的 EV Hosting 推出了面向个人开发者的套餐 其中包含了独立域名邮箱,主机空间,以及域名折扣套餐。如果有需要的话,也可以去订购。