邮件系统无法工作,尽管我用telnet和其他平台测试过

出于某种原因,我的 Discourse 设置没有收到邮件。

我已经测试过 SMTP 设置,它们在其他平台上运行正常。

也使用 Telnet 进行了测试。

1 个赞

请参阅 在新 Discourse 安装中排查电子邮件问题。一个常见的问题是,Discourse 发送的邮件地址不被您的服务器接受。

4 个赞

我遇到了类似的情况。已安装,网站有响应,但注册邮件从未收到。在 Discourse 服务器内部、使用相同的配置/凭据从应用容器中测试发送邮件 = 成功,测试邮件已正确发送并接收。运行 doctor 命令后显示:

正在向 my_correct_user@my_correct_domain 发送邮件...
正在使用 correct_smtp_server_name:465、用户名 correct_smpt_user@correct_sender_domain 以及 plain 认证方式,测试向 my_correct_user@my_correct_domain 发送邮件。
======================================== 错误 ========================================
                                    意外错误

Net::ReadTimeout

====================================== 解决方案 =======================================
这不是一个常见错误,目前没有推荐的解决方案!
[....]

我尝试将端口切换到 587,此时日志中不再出现 Net::ReadTimeout,但邮件仍然无法发送。接下来该怎么办?DISCOURSE_SMTP_DOMAIN 的正确内容应该是什么?这是目前我唯一怀疑的地方。

同样的问题。请帮忙。

如果您遇到读取超时,这是因为出站 SMTP 端口被阻止。您需要解除该端口的阻止,或使用其他端口。

1 个赞

我个人在该服务器上使用 submission 端口,因此该端口肯定不会被阻止。而且——对了——在使用 587 端口时,不会出现超时错误。由于我无法更改服务器的配置,我是否应该理解它仅支持 SMTPS

端口 587 支持显式 TLS(STARTTLS),邮件服务器可以配置为在该端口接受提交而不要求 TLS,因此您可以通过该端口进行未加密的 SMTP 传输。

(现在已基本弃用的端口 465 支持隐式 TLS,您别无选择。)

好的,服务器已配置为在提交端口(587)上使用显式 TLS。现在,需要在 Discourse 配置中进行哪些设置才能使其在 587 端口上 使用 TLS 工作?它应该/不应该开箱即用吗?

有一个 DISCOURSE_SMTP_ENABLE_START_TLS,其默认值为 true