无法设置 DISCOURSE_SMTP_AUTHENTICATION: login

您好,我在发送邮件时遇到了问题。我使用的是 Mailjet,并收到了以下错误:

Connection reset by peer

因此,我现在尝试在 app.yml 中设置 DISCOURSE_SMTP_AUTHENTICATION: login。这或许能解决问题。

之后我运行了 ./launcher restart app,但再次运行 discourse-doctor 时,它仍然显示 with plain auth

顶一下,忘记添加支持类别了

你需要先销毁,然后再启动。

谢谢,这确实起作用了,但似乎我修复的是错误的地方,它仍然显示:
Job exception: Connection Reset by peer

我不知道该从哪里入手来解决这个问题。我使用的是 DigitalOcean,并通过 587 端口发送邮件。我已经将其切换回普通认证,因为据 Mailjet 所说这是必须的。根据他们的说明,TLS 是可选的,但我已尝试过开启和关闭 TLS,均无济于事。我真的不知道还能改什么了,我尝试过在密码外加双引号,也试过不加。我也再次核对了用户名和密码。

DISCOURSE_DEVELOPER_EMAILS: 'user@email.com'

  ## TODO: 用于验证新账户和发送通知的 SMTP 邮件服务器
  # 需要 SMTP 地址、用户名和密码
  # 警告:SMTP 密码中的字符 '#' 可能会导致问题!
  DISCOURSE_SMTP_ADDRESS: in-v3.mailjet.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: uname
  DISCOURSE_SMTP_PASSWORD: pwd
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_SMTP_DOMAIN: radstarter.io
  DISCOURSE_NOTIFICATION_EMAIL: noreply@radstarter.io
  ## 如果您添加了 Let's Encrypt 模板,请取消注释以下行以获取免费 SSL 证书
  LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

任何帮助都将不胜感激。

您可以检查 telnet in-v3.mailjet.com 587 是否连接成功或超时。如果超时,则说明出站端口被阻止,您需要使用其他端口(2525 可能对 Mailjet 有效,但我不确定),或者需要联系 Digital Ocean 停止阻止该端口。

我可以建立 telnet 连接,但连接会立即关闭

~# telnet in-v3.mailjet.com 587
正在尝试 104.199.96.85...
已连接到 in.mailjet.com。
转义字符是 '^]'。
远程主机已关闭连接。

如果涉及防火墙,那条连接线可能会产生误导。它可能只是报告在尝试该域名时已成功连接到某个目标(in-v3.in. 的别名),但该目标实际上是防火墙,随后关闭了连接。

另一个可以尝试的命令是 telnet smtp-relay.gmail.com 587。如果该命令以相同方式失败,那么很可能是您的 DigitalOcean 服务器上的端口被阻止了。这可能是服务器外部的防火墙,也可能是运行在您服务器上的防火墙软件。

对于前者,您可能可以通过账户控制面板中的某个位置进行控制,或者需要联系他们。对于后者,问题可能出在 iptables 上,您可以使用以下命令查看是否属于这种情况,并列出适用于出站连接的规则:

iptables -S OUTPUT

那可能没问题。

如果他确实被阻止了,那几乎肯定是在 droplet 操作系统之外的网络层面进行的。(除非他设置了防火墙却不慎把自己也阻止了。)

有很多关于 Mailjet 的帖子。你查看过那些吗?

iptables -S OUTPUT

-P OUTPUT ACCEPT
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output

Gmail SMTP 运行完美。

是的,我查阅了许多 Mailjet 相关主题,它们都不会影响我的解决方案。

我使用了一键安装,这很可能是导致失败的原因。我将删除该 Droplet 并重新进行干净安装。

编辑:已解决。请注意:切勿使用一键安装程序