意外错误 500 5.0.0 - 无法发送电子邮件

你好
我已安装 Discourse:

  • 遵循官方 30 分钟教程
  • 系统为 Ubuntu 20.04
  • 我到达了“恭喜,您已成功安装 Discourse”的屏幕
  • 我可以注册,系统提示已发送电子邮件——但我的收件箱中并未收到任何邮件
  • 即使点击“重新发送激活邮件”也没有收到

我尝试过的操作(根据“新安装 Discourse 时邮件故障排查”指南):

  • Telnet:连接正常(已连接且服务就绪)
  • discourse doctor:报告“UNEXPECTED ERROR 500 5.0.0 Unknown or unimplemented command.”……这不是常见错误,没有推荐解决方案。请将上述确切错误信息报告至 https://meta.discourse.org/
  • 电子邮件提供商日志:没有任何显示邮件已发送的记录
  • Discourse 日志:

Apache
root@ubuntu-2gb-fsn1-3:/var/discourse# tail shared/standalone/log/rails/production.log
lib/middleware/enforce_hostname.rb:23:in call'* *lib/middleware/request_tracker.rb:177:in call’
Rendered exceptions/not_found.html.erb within layouts/no_ember (Duration: 0.5ms | Allocations: 137)
Rendered layout layouts/no_ember.html.erb (Duration: 8.0ms | Allocations: 1280)
Rendered html template (Duration: 0.0ms | Allocations: 2)
Rendered layouts/email_template.html.erb (Duration: 0.3ms | Allocations: 30)
Delivered mail 8731fbdf-b6c8-49b5-86d5-08d8c32e5ac1@talk.absolutum. net (485.7ms)
Job exception: 500 5.0.0 Unknown or unimplemented command

  • 电子邮件域名
    • 我的域名是:talk.absolutum. net
    • 发送邮件的域名为:norepoy@absolutum.net(因此与上述域名不同)
    • 因此我在 app.yml 中取消了注释"-exec: rails r “SiteSEttings.notification_email…” 并输入了我的邮箱地址
  • 我重新构建了应用
  • 我也通过命令行修改了 sitesettings.notification 邮箱
  • 我尝试了在 yml 中启用或禁用 TLS,并使用端口 587 和 25(我的邮件提供商同时支持这两个端口,并且已重新构建)
  • 我的邮件域名中没有 IP 地址
  • discourse doctor 的结果:
    ==================== MAIL TEST ====================
    要进行可靠测试,请从 h ttp://www.mail-tester.com/ 获取一个邮箱地址
    或者只需给自己发送一封测试邮件。
    用于邮件测试的邮箱地址?(输入 ‘n’ 跳过)[info@absolutum.net]:
    正在向 info@absolutum.ne t 发送邮件…
    正在使用 smtp .socketlabs.com:587 和用户名 server34665(明文认证)测试向 info@absolutum.ne t 发送邮件。
    ======================================== ERROR ========================================
    UNEXPECTED ERROR
    500 5.0.0 Unknown or unimplemented command.
    ====================================== SOLUTION =======================================
    这不是常见错误,没有推荐解决方案!
    请将上述确切错误信息报告至 h ttps://meta.discourse.org/
    (如果您找到解决方案,也请一并告知!)

如果您有任何建议,欢迎分享如何尝试解决此问题。
(抱歉,作为新用户,我只能使用两个链接,因此不得不将某些 URL 中的空格插入以规避限制。)
谢谢
Olivier

哎呀!我漏掉了这一点。既然 discourse-setup 现在会询问这个设置,那条说明就失去意义了。Jeff,我下周会尝试提交一个 PR 来移除它。

你在运行 discourse setup 时输入了正确的地址吗?还是你没理解那个问题?(我现在用手机找不到确切的措辞了)。

不过那个错误非常奇怪,所以我更怀疑通知邮箱不是问题所在。你的邮件服务器是什么?它的日志里显示没有连接吗?

感谢 Jay 的回复。
没错,这就是我输入的内容(我已移除邮件发送器的用户名、密码以及 MaxMind 许可证密钥)。
这样看起来对吗?

主机名 : talk.absolutum.net
电子邮件 : info@absolutum.net
SMTP 地址 : smtp.socketlabs.com
SMTP 端口 : 587
SMTP 用户名 : myUsername
SMTP 密码 : myPassword
通知邮箱: noreply@absolutum.net
Let’s Encrypt : info@absolutum.net
MaxMind 许可证: license-text

对于想要最终答案的用户:

编辑您的 app.yml 文件,添加以下行:

DISCOURSE_SMTP_AUTHENTICATION: login

论坛中有一些提到需要编辑 .rake 文件,但这已不再必要。