Письмо с активацией не пришло

Здравствуйте,

Я настроил экземпляр Discourse в Docker на DigitalOcean. Настройка прошла гладко, однако мне не удаётся включить создание учётных записей, так как я не получаю письмо с подтверждением.

Мои настройки следующие:

  DISCOURSE_SMTP_ADDRESS: smtp.strato.de
  DISCOURSE_SMTP_PORT: 465
  DISCOURSE_SMTP_USER_NAME: no-reply@celesto.graphics
  DISCOURSE_SMTP_PASSWORD: "xxx"
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (опционально, по умолчанию true)
  DISCOURSE_SMTP_DOMAIN: celesto.graphics.com
  DISCOURSE_NOTIFICATION_EMAIL: no-reply@celesto.graphics

Я попробовал проверить соединение с помощью команды:

telnet smtp.strato.de 465

Trying 81.169.145.133...
Connected to smtp.strato.de.
Escape character is '^]'.

Не знаю, как действовать дальше… Буду благодарен за помощь.

Вот информация о порте 465 в статье Устранение неполадок с электронной почтой при новой установке Discourse, если это может помочь?

Дело в том, что с портом 587 не сработало, поэтому я попробовал 465, но ничего не изменилось.

Вопрос, возможно, очевидный для многих, но иногда самые простые вещи остаются незамеченными.
Вы уже добавили доменное имя (talk.example.com) в Digital Ocean (DO) и настроили брандмауэр для открытия необходимых портов? Также не забудьте добавить в брандмауэр дроплет, на котором установлен Discourse.

Привет, спасибо за ответ.

Итак, что я сделал: создал дроплет, добавил новую A-запись у моего провайдера доменов и указал IP-адрес моего дроплета.

Необходимо ли добавлять домен к моему дроплету для этой настройки электронной почты? Если да, то не могли бы вы немного подсказать, где именно можно добавить домен, например? И что нужно добавить в брандмауэр.

Я не очень опытен в подобных вещах.
Спасибо в любом случае!

Не волнуйтесь, я постараюсь максимально подробно вас направить. Я не эксперт в этой области, но на данный момент моя почта работает без проблем. Лично я использую «Sendinblue», так как это единственный сервис, который позволил мне создать аккаунт без прохождения фильтров, которые применяют другие.

Короче говоря, раздел, о котором я упоминаю, находится в разделе «Сеть».

  1. Нажмите на «Сеть».
  2. Введите ваш домен «example.com», а НЕ «talk.example.com».
  3. Выберите проект.

Лично мне потребовалось добавить и управлять доменным именем через «DO» (DigitalOcean), так как Sendinblue попросил меня добавить некоторые значения DNS для подтверждения права собственности на домен, точно так же, как это делает Google при регистрации пользователя.

Спасибо за ответ!

Да, я сделал это.

Ещё один момент. Я отправил тестовое письмо через панель администратора, и получил следующее:

В качестве получателя я указал свой Google Mail для проверки. Похоже, письмо не было отправлено. Это странно.
Таким образом, я не могу отправлять письма. Это также объясняет, почему я не получаю письмо с активацией.

Я забыл, вы уже открыли порт 587 через брандмауэр?
То же самое нужно сделать и внутри сети.

Сеть/Брандмауэры/Создать брандмауэр

1 Имя (например: Брандмауэр моего форума)
2 Новое правило, выберите «Настраиваемое».

3 Настроим
4 TCP
5 587
6 Настроим
7 UDP
9 587

9 Выберите дроплет, к которому нужно применить правила.

И наконец нажмите кнопку «СОЗДАТЬ БРАНДМАУЭР».

Я не уверен, какое решение работало ранее, но понял, что у меня была неверная конфигурация.

DISCOURSE_SMTP_DOMAIN: celesto.graphics.com

В этой настройке у моего домена было два доменных имени верхнего уровня, а .com не требовался.

В любом случае, теперь я получаю электронные письма без проблем.

Вам не нужно открывать входящий порт 587 для установления исходящего соединения для отправки электронной почты.

Discourse по умолчанию не работает как почтовый сервер, и создание такого правила открывает порт 587 на хосте.

Спасибо, как я и говорил, я не эксперт. Большое спасибо за разъяснение.