禁用 STARTTLS 或证书验证已不再有效

Support 频道里有很多关于这个问题的帖子,既然我们似乎已经找到了原因,我认为创建一个 Contribute > Bug 主题来专门描述这个实际问题是个好主意。该主题仅包含以下内容:Email Hostname Certificate Mismatch Causing sidekiq Queue Overload, Severe Site Instability - #47 by RGJ

长话短说:

自 2.9.0 beta 4 版本以来,以下设置
DISCOURSE_SMTP_OPENSSL_VERIFY_MODEDISCOURSE_SMTP_ENABLE_START_TLS 不再能正常工作。

这似乎与迁移到 Rails 7 有关,该版本将 net-smtp 从 0.1.0 更新到了 0.3.1,从而改变了这两个连接参数的默认值。

smtp gem 调用 net-smtp 的方式并不会禁用 enable_starttls_autoopenssl_verify_mode,它仅在启用时才进行设置。

关于 smtp gem 的相关报告:SMTP: allow disabling starttls_auto since it's now true by default in Ruby 3 - Pull Request #1435#issuecomment-1044852765 - mikel/mail - GitHub

从技术上讲,这个 bug 不在 Discourse 的代码范围内,因为它发生在 smtp gem 中,但由于该 gem 目前为 Discourse 进行了 fork,我认为这确实值得创建一个 Contribute > Bug 主题。如果无法轻松修复,那么可以从文档中移除这些参数,并显示弃用警告,这样至少可以消除所有的困惑。

10 个赞

交叉链接错误报告:

2 个赞

此 PR 应能恢复正确的行为(尚未合并):

5 个赞

PR 今天早些时候已合并,因此通过使用 tests-passed 分支,您应该能够像以前一样禁用 TLS :slight_smile:

1 个赞

11 个帖子已拆分为新主题:电子邮件无法正常工作(端口 465)

该主题已在 7 小时后自动关闭。不再允许回复。