Здравствуйте. Уже несколько дней я пытаюсь настроить форум Discourse, и все проблемы связаны с электронной почтой. Мне удалось запустить форум, пропустив настройку регистрации по email, но мне всё ещё нужно, чтобы эта функция работала, чтобы пользователи могли регистрироваться. Я получаю одни и те же результаты снова и снова, перепробовал множество вариантов, но ничего не помогает. Каждый раз происходит одно из двух:
- При тестовой отправке письма появляется ошибка: «hostname . . . does not match the server certificate» (имя хоста не соответствует сертификату сервера).
- При тестовой отправке появляется ошибка «502», а в логах Sidekiq возникает ошибка
Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout with #<TCPSocket:(closed)>.
Итак, когда появляется каждая из них? Первая ошибка возникает в каждом сценарии. Вторая же появляется, когда я использую порт 465. Процесс «отправки тестового письма» занимает некоторое время, после чего возникает эта ошибка. Только что я отключил SSL, поэтому порт 587 стал доступен, но вместо ошибок 1 или 2 процесс просто зависает на статусе «Sending test Email».
Я не знаю, что делать дальше. Я борюсь с этой проблемой уже несколько дней и до сих пор не нашёл решения. Любая помощь будет очень кстати. Спасибо за ваше время и поддержку.
ОБНОВЛЕНИЕ: С помощью команды curl --ssl-reqd я протестировал порты 465, 587, 25 и 2525. Результаты следующие:
25: Не работает (ошибка Curl 35, неверный номер версии)
465: Работает как положено, быстрая отправка письма
587: Не работает (ошибка Curl 35, неверный номер версии)
2525: Не выдаёт ошибку, но письмо так и не отправляется (таймер идёт бесконечно, письмо не отправлено)
Если это поможет, вот мои текущие настройки (с ошибкой 502):
DISCOURSE_SMTP_ADDRESS: CENSORED
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: CENSORED
DISCOURSE_SMTP_PASSWORD: CENSORED
# DISCOURSE_SMTP_ENABLE_START_TLS: true # (опционально, по умолчанию true)
Шаблон конфигурации:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Раскомментируйте эти две строки, если хотите добавить Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
И маппинг портов (expose):
expose:
- "80:80" # http
- "443:443" # https
Вот изображение с информацией об электронной почте:


