Discourse сложно настраивать (для отсылки писем-уведомлений) на внутренний почтовый сервер (если таковой уже имеется на Вашем сервер), потому что Discourse работает внутри контейнера Docker.
Намного проще настроить внешний почтовый сервер.
Я для этого сайта использую почтовый сервер Яндекса, причём в рамках услуги почта для домена
Эта услуга позвоялет настроить почтовый сервер Яндекса на работу с доменом Вашего сайта: то есть иметь почтовый адрес не <имя>@yandex.ru
, а <имя>@<ваш сайт>
.
Настройки подключения Discourse к почтовому серверу Яндекса указываются в секции «env» файла YML:
У меня настройки такие:
DISCOURSE_HOSTNAME: 'discourse-forum.ru'
DISCOURSE_SMTP_ADDRESS: smtp.yandex.ru
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: admin@discourse-forum.ru
DISCOURSE_SMTP_PASSWORD: <пароль>
DISCOURSE_SMTP_ENABLE_START_TLS: true
В качестве пароля Вы указываее пароль к почтовому ящику.
Обратите внимание, что Discourse по умолчанию отсылает письма с какого-то нелепого постороннего адреса, поэтому почтовый сервер Янедекса не даёт Discourse отправлять письма-уведомления и возаращает диагностическое сообщение: sender address rejected: not owned by auth user.
Чтобы устраить эту проблему, надо указать в качестве адреса отправителя существующий почтовый адрес на домене сайта.
Discourse должен быть уже установлен.
Если Discourse не запущен — то запустите:
./launcher start <название файла YML без расширения>
Затем выполните консольную команду для контейнера Discourse:
rails r "SiteSetting.notification_email = '<адрес отправителя уведомлений>'"
Вместо <адрес отправителя уведомлений>
укажите свой адрес. Повторяю: это должен быть существующий почтовый адрес на домене Вашего сайта. У меня это admin@discourse-forum.ru
После установки Discourse протестируйте почтовые уведомления.