SMTP 服务器已连接,但邮件发送失败

对于寻求此问题解决方案的朋友们——我已经解决了。这篇帖子非常关键:How to get Discourse to work with Postfix - #11 by shu_kaze - Linux - Level1Techs Forums

问题在于 Discourse 无法从 Docker 连接到我的 Postfix 服务器。从技术层面讲,连接来自另一个网络,而 Postfix 并未将该网络列入允许的网络列表中。只需在 Postfix 配置中将 Docker 网络(在我的案例中是 172.17.0.0/16)添加到 mynetworks 即可解决问题!

首先,你需要确认 Docker 是否能在 Postfix 执行允许网络检查之前成功连接到你的 Postfix 服务器。记得检查 Postfix 配置中的 inet_interfaces 项。我将其设置为 all,因为对于 Docker 中的 Discourse 而言,localhost 无法正常工作。

如果仍然无法工作,请检查 Postfix 日志。在我的案例中,日志位于 /var/log/mail.log 文件中。

希望这能帮到未来的某位朋友。我花了很长时间才让它运行起来,但现在我终于不再依赖任何付费邮件服务(我甚至曾想使用,但无法成功),而是免费实现了这一功能(记得为你的域名添加 SPF 记录!否则 Gmail 和其他邮件提供商将拦截你的邮件——它们甚至不会进入垃圾邮件箱,而是直接无法送达)。

3 个赞