500 5.5.1 无效命令:在 Discourse 新安装中无法发送邮件,但可从命令行发送(在 Digital Ocean 上)

在 Digital Ocean 上安装后使用 ./discourse-docker 时出现以下错误

==================== 邮件测试 ====================
如需进行可靠的测试,请从 http://www.mail-tester.com/ 获取一个地址。
或者只需给自己发送一封测试邮件。
请输入用于邮件测试的电子邮件地址?(输入 'n' 以跳过)[forum@jamaicans.dev]: 
正在向 forum@jamaicans.dev 发送邮件... 
正在使用 mail.jamaicans.dev:587 测试向 forum@jamaicans.dev 发送邮件。
======================================== 错误 ========================================
                                    意外错误

500 5.5.1 无效命令

forum@jamaicans.dev 是一个有效的电子邮件地址吗?
您是否在使用自定义 SMTP?

是的,我正在使用 Mailu 运行自己的邮件服务器 → Mailu — Mailu, Docker based mail server

我编写了一个 Python 脚本来测试是否可以使用 SMTP 凭据发送邮件,并且能够成功发送和接收邮件。我还尝试了 Telnet,也正常工作。端口运行在 587 并启用了 StartTLS。DMARC 和 SPF 已经配置完毕。

该邮件账户的密码中包含一个 % 符号。我注意到在 app.yaml 中提到密码中不应包含 # 字符。您认为这会是问题所在吗?

将密码用引号括起来,例如 'P@$$w0RD%100',这样应该就能正常工作了。

它已经被封装了

为什么不改个密码试试看?

我确实等了重建完成……但以防万一它失败,我想知道是否还有其他人收到过这条消息

这行不通。我可能直接用 Mailgun 了。

能分享一下你的 Python 脚本吗?我也安装了 Mailu,想测试一下。

更新:算了,我自己通过 Sending Emails With Python – Real Python 创建了脚本。Mailu 可以运行(但没有启用 TLS,因为我还没弄清楚如何在 Mailu 和 Caddy 之间配置 Let’s Encrypt),但 Discourse 无法发送邮件……

你好,
这对我来说也奏效了。我对邮件设置进行了一些修改,问题就解决了。抱歉之前没有说明我已经解决了这个问题。

我也让它运行起来了。用 discourse-doctor 测试帮了大忙。

我也遇到了同样的错误。你们还记得当时是怎么解决的吗?

老实说,没有,但试着先参考 Real Python 上的真实 Python 示例让它运行起来。我想这引导我找到了解决方案。