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_MODE 和 DISCOURSE_SMTP_ENABLE_START_TLS 不再正常工作。
这似乎与迁移到 Rails 7 有关,Rails 7 将 net-smtp 从 0.1.0 更新到了 0.3.1,这改变了这两个连接参数的默认值。
smtp gem 调用 net-smtp 的方式并未禁用 enable_starttls_auto 和 openssl_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 主题。如果无法轻松修复,则可以从文档中删除这些参数,并可能显示弃用警告,至少可以消除所有混淆。