Привет! Извините, если у этой проблемы уже есть чёткое решение; я действительно искал, но не нашёл ясного ответа на свой вопрос.
Итак, я развернул собственный экземпляр Discourse и после некоторых манипуляций настроил правильную конфигурацию SMTP, но письма новым пользователям не отправляются (даже первому администратору; в итоге я создал его вручную с помощью команды rake внутри контейнера).
Сначала я подумал, что проблема в невозможности подключения к SMTP из-за каких-то DNS-шутей, так как при работе с утилитой ./discourse-doctor и последующем входе в оболочку контейнера я получил:
Testing sending to xxxx@gmail.com using smtp-relay.brevo.com:587, username:xxxxxxx@smtp-brevo.com with plain auth.
======================================== ERROR ========================================
Connection to port 587 failed.
====================================== SOLUTION =======================================
The most likely problem is that your server has outgoing SMTP traffic blocked.
If you are using a service like Mailgun or Sendgrid, try using port 2525.
=======================================================================================
Однако команда openssl, рекомендованная в руководстве по устранению неполадок SMTP, не только установила соединение, но и позволила мне отправить тестовое письмо самому себе изнутри контейнера, используя команды EHLO, AUTH LOGIN и другие (о которых я до сих пор не знал, хех ^^'). Поэтому я не думаю, что проблема в том, что контейнер не может подключиться к SMTP-серверу.
РЕДАКТИРОВАНИЕ ДЛЯ ПРОЯСНЕНИЯ
Я смог сделать это изнутри контейнера: я вошёл в контейнер с помощью команды./launcher enter container. Из этого приглашения я выполнил вышеупомянутые команды.
Вот мои настройки SMTP, если это поможет. Я, конечно, удалил данные для входа.
DISCOURSE_SMTP_ADDRESS: 'smtp-relay.brevo.com'
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: 'xxxxxxxx@smtp-brevo.com'
DISCOURSE_SMTP_PASSWORD: 'xxxxxxxxxxxx'
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (required by some providers)
DISCOURSE_NOTIFICATION_EMAIL: 'noreply@mydomain.xyz' # (address to send notifications from)
#DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
Почта для уведомлений была той, через которую я тестировал подключение командой openssl. Последнюю строку я где-то прочитал в другом посте и добавил, но закомментировал и так и не попробовал, так как пост был старым.
В любом случае, я совершенно запутался. Надеюсь, кто-нибудь сможет мне помочь, и ещё раз извините, если это уже решённая проблема, которую я просто не нашёл!