malee
(Matthew Lee)
1
我在 Discourse 使用 SMTP 发送电子邮件时似乎遇到问题。
我已经与我的电子邮件服务提供商核实了我的主机名,并且已经成功地通过主机 VM 使用 Telnet 和 sendmail 发送了电子邮件,以及通过 Discourse Docker 容器内的 Telnet 发送了电子邮件。
我查看了在 Docker 容器内集成 ‘sendmail’ 的方法,并在直接从 CLI 发送电子邮件时收到了“无法解析主机名”的错误。
对我来说,这意味着 VM 与 SMTP 服务提供商之间的通信没有问题。
我已经尝试了所有常用的 SMTP 端口,并且我相信 app.yml 文件中的配置是正确的。VM 是 Linux 20.04,测试中也使用了 24.04 和 22.04。
加密使用的是 Let’s Encrypt 证书。
DISCOURSE_SMTP_ADDRESS: <smtp_provider>
DISCOURSE_SMTP_PORT: <port>
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_USER_NAME: apikey
DISCOURSE_SMTP_PASSWORD: "<secret>"
DISCOURSE_SMTP_ENABLE_START_TLS: true
每当我通过 Discourse 表单发送时,我都会收到“执行已过期”的消息。
1 个赞
kuaza
(kuaza)
2
检查您的电子邮件服务提供商的限额。有时配额达到上限时发送会失败。尝试从 Outlook 发送电子邮件。我曾经遇到过一次。您的问题可能不同,但它可能对某人仍有用。
1 个赞
pfaffman
(Jay Pfaffman)
3
如果您收到“无法解析主机名”,听起来就像是主机名无法解析,这是一个问题。
rake emails:test[you@somewhere.com] 是否有效?另请参阅 新 Discourse 安装上的电子邮件故障排除
2 个赞
malee
(Matthew Lee)
4
感谢您的回复。我周末看了一下。我在 Digital Ocean 上创建了一个虚拟机,并使用 Brevo 设置了 SMTP。一切都很好。
所以 Discourse 没有问题。
我认为 Discourse 使用像 NET::smtp 这样的 Ruby GEM 来发送邮件,并且默认情况下容器内没有安装 smtp 服务器。我们面临的问题是在 Azure 租户上。
在我看来,发送到外部 SMTP 服务的请求被某种位于租户之上的反垃圾邮件机制阻止了。
我还有一些测试要做,以缩小范围。
如果您能提供有关 Discourse 如何发送电子邮件的任何信息,那就太好了
我是 Ruby on the Rails 的新手。
1 个赞
pfaffman
(Jay Pfaffman)
5
但是您配置 SMTP 的方式与在 Digital Ocean 实例上的配置方式相同吗?
运行 rake 任务时会发生什么?
pfaffman
(Jay Pfaffman)
7
无法连接就是无法连接。很明显你被防火墙阻止了。
也许可以试试端口 2525?或者询问你的服务提供商(例如 DigitalOcean)是否阻止了你想要的端口。
malee
(Matthew Lee)
8
@pfaffman 感谢您抽出宝贵时间。事实证明,问题与 DNS 有关。
一切现在都正常工作了 
1 个赞
system
(system)
关闭
9
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.