传出邮件的 Postfix 连接超时 - 端口 25 ***未*** 被 ISP 阻止

Postfix Connection Timeout for Outgoing Mail - Port 25 is ***not*** blocked by ISP

这里问过许多类似的问题,但大多数问题都是端口 25 被云提供商(即 DigitalOcean)或 ISP(即 Xfinity)阻止。这两个问题我都没有,但还是发不出邮件。

我尝试发送外发邮件,但从 posfix/smtp

收到此错误
connect to alt2.gmail-smtp-in.l.google.com[142.250.152.27]:25: Connection timed out

我是 运行 来自 运行 Ubuntu 服务器的备用笔记本电脑的后缀,所以我知道这不是云提供商的问题。另外,我有 Google Fiber,它们不阻塞任何端口,包括 25 端口。作为测试,当我 telnet 到上述地址时,我可以成功连接。

$ telnet alt2.gmail-smtp-in.l.google.com 25
Trying 2607:f8b0:4001:c56::1a...
Connected to alt2.gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP x17si5369573iow.10 - gsmtp

知道最后一个障碍是什么吗?我能想到的一件事是我下面的后缀 main.cf 变量可能需要调整。另外,仅供参考,我是 运行 Docker 容器中的后缀服务器。

mydestination = localhost.$mydomain, localhost
proxy_interfaces = X.X.X.X # Static IP of Google Fiber router that is externally facing to WAN

经过一些挖掘,我在实时黑洞列表或 RBL 上查找了我的主机名,发现我的主机名和邮件服务器被任何检查 public RBL 的邮件服务器作为垃圾邮件拒绝。

对此的解决方案是通过我的 DNS 提供商设置 SPF、DKIM 和 DMARC。其中每一项都在减少主机名欺骗、垃圾邮件和其他恶意活动方面发挥作用。网上有很多关于如何执行此操作的教程。

SPF 是发件人策略框架。这用于防止其他人欺骗您的域。

DKIM 是域名密钥识别邮件。这允许发件人通过在电子邮件中包含数字签名来验证他们的电子邮件 header。 DKIM 使用 public-key 加密来验证电子邮件是否来自授权的邮件服务器。

DMARC 是 Domain-based 消息身份验证报告和一致性,它建立在 SPF 和 DKIM 之上以防止域欺骗。