Похоже, у меня возникла проблема с отправкой писем через SMTP в Discourse.
Я подтвердил имя хоста у моего провайдера почтовых услуг и успешно отправлял письма с помощью Telnet, а также через sendmail на виртуальной машине-хосте и внутри Docker-контейнера Discourse через Telnet.
Я попытался интегрировать sendmail внутри Docker-контейнера, но при отправке писем напрямую из CLI получил ошибку «не удалось разрешить имя хоста».
На мой взгляд, это означает, что проблем с коммуникацией между виртуальной машиной и провайдером SMTP-услуг нет.
Я перепробовал все стандартные порты SMTP и считаю, что конфигурация в файле app.yml верна. Виртуальная машина работает под управлением Linux 20.04; также проводились тесты на версиях 24.04 и 22.04.
Шифрование осуществляется с помощью сертификата Let’s Encrypt.
Проверьте ограничения вашего почтового провайдера. Иногда отправка не удаётся, когда исчерпан лимит. Попробуйте отправить письмо из Outlook. Со мной такое однажды случалось. Ваша проблема может быть иной, но этот совет всё же может быть полезен кому-то.
Спасибо за ответы. Я посмотрел в выходные. Я создал виртуальную машину на Digital Ocean и настроил SMTP с Brevo. Всё работало нормально.
Значит, с Discourse всё в порядке.
Полагаю, Discourse использует Ruby GEM, например NET::smtp, для отправки почты, и по умолчанию внутри контейнера нет SMTP-сервера. Проблема, с которой мы столкнулись, возникает в арендаторе Azure.
Мне кажется, что запрос к внешнему SMTP-сервису где-то блокируется. Возможно, каким-то механизмом анти-спам, работающим поверх арендатора.
У меня есть ещё несколько тестов, которые нужно провести, чтобы сузить круг поиска.
Будет здорово получить любую информацию о том, как Discourse обеспечивает отправку писем Я немного новичок в Ruby on Rails.