禁用 starttls 或证书验证不再有效

Support 中有很多关于此问题的帖子,现在我们似乎找到了原因,我认为创建一个关于此问题的 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 有关,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 by jeremy · Pull Request #1435 · mikel/mail · GitHub

从技术上讲,此 bug 存在于 Discourse 代码之外,因为它发生在 smtp gem 中,但由于 Discourse 目前正在分叉它,我认为这确实值得创建一个 Bug 主题。如果无法轻松修复,则可以从文档中删除这些参数,并可能显示弃用警告,至少可以消除所有混淆。

10 个赞

交叉链接错误报告:

2 个赞

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

5 个赞

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

1 个赞

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

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