我最近检查了 emails:task 和相关代码,目的是测试所有失败的代码路径并润色错误文本。
我还发现,设置 DISCOURSE_SMTP_ENABLE_STARTTLS=false 的效果(大部分)是无效的。设置此项实际上并未禁用 STARTTLS,事实上,它可以在连接时与 TLS 共存(DISCOURSE_SMTP_FORCE_TLS=true)。
因此,我:
- 移除了阻止两者同时设置的代码:https://github.com/discourse/discourse/pull/35634/commits/0793898fad60871f942c3baa752172268d1360ec
- 修复了请求禁用 STARTTLS 时实际禁用它的代码:https://github.com/discourse/discourse/pull/35634/commits/e4f8b1f9efdb6f7ef9f5087be14f599ad8746230
- 重写了查找失败的代码并更新了文本:https://github.com/discourse/discourse/pull/35634/commits/00430529459ef0b189d7576678aeeed32f1a24ee
但在合并之前,我认为在仪表板中为设置 DISCOURSE_SMTP_ENABLE_STARTTLS=false 的情况添加管理员警告是合适的。我想象至少有一个自托管用户设置了此项,但他们并不需要它,并且实际上依赖于 STARTTLS。
