Новая установка: письмо не работает — «затенено, поэтому будет проигнорировано»

После чистой установки с нуля я не могу заставить почту работать. Я следовал каждому шагу из руководства по устранению неполадок здесь.

Я использую Zoho Mail. Настройки почты довольно просты:

 DISCOURSE_SMTP_ADDRESS: smtp.zoho.com
 DISCOURSE_SMTP_PORT: 587
 DISCOURSE_SMTP_USER_NAME: forum@blockchainofthings.com
 DISCOURSE_SMTP_PASSWORD: "redeacted"
 DISCOURSE_SMTP_ENABLE_START_TLS: true       # (опционально, по умолчанию true)
 DISCOURSE_SMTP_DOMAIN: blockchainofthings.com
 DISCOURSE_NOTIFICATION_EMAIL: sys@blockchainofthings.com

Я убрал комментарий из раздела пользовательских команд:

- exec: rails r "SiteSetting.notification_email='forum@blockchainofthings.com'"

Я могу подключиться к SMTP-серверу через telnet с моего экземпляра EC2, где установлен Discourse, без проблем.

При запуске ./discourse-doctor я получаю:

==================== MAIL TEST ====================
Для надежного теста получите адрес на http://www.mail-tester.com/
Или просто отправьте тестовое сообщение себе.
Адрес электронной почты для теста? ('n' для пропуска) [sys@blockchainofthings.com]: sue@rightclick.com
Отправка письма на sue@rightclick.com. . . 
Тестирование отправки на sue@rightclick.com через smtp.zoho.com:587, имя пользователя: forum@blockchainofthings.com с простой аутентификацией.
Подключение к SMTP-серверу успешно.
Отправка на sue@rightclick.com. . . 
Отправка письма не удалась.
достигнут конец файла

В логе есть странное сообщение: An attempt was to change notification_email SiteSetting to forum@blockchainofthings.com however it is shadowed so this will be ignored! («Попытка изменить SiteSetting notification_email на forum@blockchainofthings.com, однако он перекрыт, поэтому это будет проигнорировано!»). Возможно, это проблема, но я не уверен, почему и как это исправить.

Вот ещё часть лога:

An attempt was to change notification_email SiteSetting to forum@blockchainofthings.com however it is shadowed so this will be ignored!
Creating scope :open. Overwriting existing method Poll.open.
Started GET "/privacy" for 18.204.103.32 at 2021-09-15 20:22:27 +0000
Processing by StaticController#show as */*
 Parameters: {"id"=>"privacy"}
 Rendered static/show.html.erb within layouts/crawler (Duration: 7.7ms | Allocations: 963)
 Rendered layout layouts/crawler.html.erb (Duration: 41.8ms | Allocations: 8467)
Completed 200 OK in 114ms (Views: 45.2ms | ActiveRecord: 0.0ms | Allocations: 18560)
Started GET "/privacy" for 18.204.103.32 at 2021-09-15 20:22:27 +0000
Processing by StaticController#show as */*
 Parameters: {"id"=>"privacy"}
 Rendered static/show.html.erb within layouts/crawler (Duration: 5.2ms | Allocations: 931)
 Rendered layout layouts/crawler.html.erb (Duration: 26.5ms | Allocations: 6343)
Completed 200 OK in 59ms (Views: 30.1ms | ActiveRecord: 0.0ms | Allocations: 12955)
 Rendered layouts/email_template.html.erb (Duration: 0.8ms | Allocations: 273)
Delivered mail ac1148f5-a79f-4892-8982-8e6f512a3b04@forum.blockchainofthings.com (1462.1ms)
Job exception: end of file reached

Creating scope :open. Overwriting existing method Poll.open.
 Rendered layouts/email_template.html.erb (Duration: 2.1ms | Allocations: 487)
Delivered mail 5e74a41c-48ee-4e14-b669-091665840076@forum.blockchainofthings.com (544.7ms)

Буду признателен за любую помощь в решении этой проблемы на чистой установке.}

Вам нужно изменить это в файле app.yml. Именно об этом и идёт речь, когда говорится о «перекрытии».

 DISCOURSE_NOTIFICATION_EMAIL: sys@blockchainofthings.com

Если Zoho требует, чтобы отправка шла с адреса forum@blockchainofthings.com, а не с другого, вам нужно изменить это в вашем файле app.yml. (Кажется, что для этого можно выполнить ./launcher destroy app; ./launcher start app вместо полной пересборки, но я больше не уверен на 100%; возможно, потребуется изменение в discourse.conf внутри контейнера, в таком случае проще будет просто пересобрать образ, если вы не знаете, что это всё означает).

Я не понимаю, что означает или указывает сообщение «end of file reached» (конец файла достигнут).

Я не знаю о Zoho и транзакционной рассылке. Вы имеете в виду Reliable SMTP Relay & Transactional Email Sending API | Zoho ZeptoMail? Если нет, то, вероятно, вас ждут большие трудности. За то время, пока я печатал это, вы могли бы уже настроить Mailgun, и всё бы работало.

Спасибо! Я изменил это на

DISCOURSE_NOTIFICATION_EMAIL: forum@blockchainofthings.com

и всё заработало идеально.