自建邮件服务器之前
对大多数人来说,自建邮件服务器不是个好主意。安装很容易,难的是让邮件进入收件箱。开始之前,您应该了解四件事:出站 25 端口是否开放、您 IP 地址的 PTR(反向 DNS)记录、您的 SPF、DKIM 和 DMARC 记录,以及您 IP 地址的信誉。
大型邮箱服务商不信任来自陌生服务器的邮件。即使是配置正确的新服务器,也可能因为没有历史记录而进入垃圾箱。此外,服务器还必须保持在线、保持更新,并留意滥用情况。
什么情况下值得自建?
用来学习、为少数几个域名搭建几个邮箱,或者想把数据掌握在自己手里,自建服务器是合理的。如果您的业务依赖邮件,如果您计划群发(例如邮件简报),或者您没有时间盯着服务器,就不合适。您还必须自己备份邮箱,因为收到的邮件保存在服务器的磁盘上。
25 端口
- 邮件服务器之间通过 25 端口互相投递邮件。要接收邮件,该端口必须允许入站连接。要发送邮件,则必须允许出站连接。
- 许多网络和服务商为防止滥用,会限制出站 25 端口。在 Seturack,新服务器上它也是默认关闭的,您可以在面板中一键开放。
- 手机和 Thunderbird 等邮件客户端使用 587 或 465 提交端口。这些端口不能用于服务器之间的投递。
您可以在自己的服务器上这样测试出站 25 端口。如果输出是“25 open”,说明可以建立连接:
timeout 5 bash -c 'exec 3<>/dev/tcp/gmail-smtp-in.l.google.com/25' && echo "25 open" || echo "25 closed"
向没有要求收信的人群发邮件,以及为此搭建基础设施,违反 Seturack 的服务条款。
PTR、SPF、DKIM 和 DMARC
收件方用这些记录来核实邮件确实来自您。它们都存放在 DNS 中。大部分记录在您管理域名的地方设置,而 PTR 记录由 IP 地址的所有者来设定。下单之前请先弄清楚,您的服务商是否允许为您的服务器设置 PTR 记录。如果没有 dig,用 sudo apt install -y dnsutils 安装。
| 记录 | 作用 | 检查命令 |
|---|---|---|
| PTR(反向 DNS) | 把 IP 地址解析为名称。许多收件方希望这个名称能再解析回同一个 IP。 | dig -x 203.0.113.5 +short |
| MX | 告诉发件方哪台服务器接收您域名的邮件。 | dig +short MX example.com |
| SPF | 列出哪些 IP 地址可以代表您的域名发送邮件。 | dig +short TXT example.com |
| DKIM | 为发出的邮件签名。公钥存放在 DNS 中。 | dig +short TXT selector._domainkey.example.com |
| DMARC | 告诉收件方在 SPF 或 DKIM 验证失败时该怎么处理。 | dig +short TXT _dmarc.example.com |
根据 Google 官方的发件人指南,所有发件人都必须设置 SPF 或 DKIM,发送 IP 或域名必须有有效的正向和反向 DNS(PTR)记录,邮件必须使用 TLS,垃圾邮件率必须保持在 0.3% 以下。每天向 Gmail 账户发送超过 5,000 封邮件的发件人,必须同时具备 SPF、DKIM 和 DMARC 三项。
IP 信誉
每个 IP 地址都有历史。如果分配给您的地址以前被滥用过,它可能出现在公共黑名单(DNSBL)上。发送之前,请先在这些名单中查一下您的地址。新地址没有信誉,需要靠时间积累:从小的发送量开始,发送规律的、对方预期之中的邮件。突然大量发送,通常会让新地址立刻显得可疑。
留意 IPv6
如果您的服务器有 IPv6,Postfix 可能也会通过 IPv6 发送邮件。IPv6 需要自己的 PTR 和 SPF 记录。如果您还没有设置,请强制 Postfix 使用 IPv4。Postfix 文档指出,这项设置需要重启,仅重新加载是不够的:
sudo postconf -e "inet_protocols = ipv4"
sudo systemctl restart postfix
资源与维护
Postfix 和 Dovecot 在小型服务器上就能轻松运行。mailcow 这样的现成套件还带有网页界面、垃圾邮件过滤和病毒扫描。mailcow 的官方要求是默认配置下至少 6 GiB RAM 加 1 GiB swap。还有其他选择,比如 Mail-in-a-Box 和 iRedMail。无论选哪个,更新、备份和监控都是您的工作。
发送前的检查清单
- 出站 25 端口开放了吗?
- PTR 记录设置了吗?能解析回同一个 IP 吗?
- SPF、DKIM 和 DMARC 记录发布了吗?
- TLS 证书有效吗?
- IP 地址在任何黑名单上吗?
- 发给自己的测试邮件进了收件箱还是垃圾箱?
更省事的做法
对大多数项目来说,最实用的做法是:通过邮件发送服务来发送事务邮件(密码重置、订单通知),收件箱则使用托管邮箱服务。您的服务器只运行您的应用,把邮件投递交给专业的服务去做。如果您仍然想自己运行服务器,请在安装任何东西之前先检查上面这些记录。
评论0
暂无评论
成为第一个分享想法的人。
请登录或注册后发表评论。