Для справки: я использую последнюю nightly-версию Discourse в Windows WSL и развернул собственный почтовый сервер Stalwart. Я протестировал свой почтовый сервис через Thunderbird и другие почтовые клиенты — всё работало корректно.
Несколько дней назад я создал нового пользователя почты и настроил его для использования в Discourse. Когда я нажал Отправить тестовое письмо в админ-меню Discourse, чтобы отправить тестовые письма всем своим почтовым ящикам (gmail.com, qq.com, 163.com и др.), все они получили тестовые письма. Однако при попытке регистрации учётной записи мои почтовые ящики не получали письма для регистрации и другие уведомления, кроме тестовых. В логах почты я видел только запись test_message, а в логах Stalwart также отсутствовали записи о других письмах, кроме тестовых.
Я застрял на этом этапе уже несколько дней и больше не знаю, что делать, поэтому создаю эту тему.
Вот мои настройки:
Домен SMTP-сервера: mail.example.com
SMTP-порт: 465
Принудительное использование TLS: true
Автоматический STARTTLS: true
Домен электронной почты: example.com
Имя пользователя SMTP: notice@example.com
Почта для уведомлений: notice@example.com
Я следовал этому посту, указав notice@example.com в параметре notification_email в файле discourse.conf, а затем выполнил команду rake emails:test[my_email@gmail.com]. Хорошо, тестовое сообщение пришло, но сам Discourse по-прежнему не отправляет письма.
Я как-то ожидал, что какие-то другие более умные люди подключатся и помогут вам, но в любом случае… тем временем, пробовали ли вы отправить тестовое письмо новому пользователю через интерфейс в разделе администратора Discourse, как показано ниже?
Я решил эту проблему. Я использую Puma для запуска Discourse, но официальный файл puma.rb никогда не обновлялся в соответствии с unicorn.conf.rb (из-за этого Sidekiq вообще не запускался). Я использовал ChatGPT для преобразования конфигурации, чтобы привести её в соответствие с настройками Unicorn, что позволило запустить Sidekiq и другие необходимые компоненты. После этого всё снова заработало нормально.