Отключение 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_MODE и DISCOURSE_SMTP_ENABLE_START_TLS перестали работать корректно.

Это, по-видимому, связано с переходом на Rails 7, который обновил net-smtp с версии 0.1.0 до 0.3.1, изменив значения по умолчанию для этих двух параметров подключения.

Гем smtp при вызове net-smtp не отключает enable_starttls_auto и openssl_verify_mode, а включает их только если они явно заданы.

Соответствующий отчёт для гема smtp: SMTP: allow disabling starttls_auto since it's now true by default in Ruby 3 by jeremy · Pull Request #1435 · mikel/mail · GitHub

Технически эта ошибка находится вне кода Discourse, так как происходит в гем smtp, но поскольку он сейчас форкнут для Discourse, я считаю, что это оправдывает создание темы в bug. Если проблему нельзя легко исправить, эти параметры можно исключить из документации и, возможно, добавить предупреждение об устаревании, чтобы хотя бы устранить всю путаницу.

10 лайков

Перекрестная ссылка на сообщения об ошибках:

2 лайка

Этот PR должен восстановить правильное поведение (он ещё не слит):

5 лайков

PR был слит сегодня утром, поэтому, используя ветку tests-passed, вы сможете отключить TLS, как и раньше :slight_smile:

1 лайк

11 сообщений были перенесены в новую тему: Почта не работает (порт 465)

Эта тема была автоматически закрыта через 7 часов. Новые ответы больше не принимаются.