Я не делал заметок на каждом шаге, но всё, кажется, сработало. Я с радостью отвечу на вопросы, хотя не могу гарантировать, что ответы будут идеальными ![]()
Создал новую идентичность Amazon SES для forum.example.com. Система подсказывает, какие записи нужно добавить для DMARC и других настроек.
Вот как получить учётные данные SMTP для SES: Obtaining Amazon SES SMTP credentials - Amazon Simple Email Service
Изменил настройки SMTP в файле app.yml — см. Troubleshoot email on a new Discourse install. Я не был уверен насчёт этих файлов, поэтому добавил двойные кавычки вокруг всех строк.
Для Mailgun я использовал порт 2525 и закомментировал строку DISCOURSE_SMTP_ENABLE_START_TLS: true.
Для SES:
DISCOURSE_SMTP_ADDRESS: "email-smtp.eu-west-2.amazonaws.com"
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "xxx"
DISCOURSE_SMTP_PASSWORD: "xxx"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (опционально, по умолчанию true)
Следовал инструкциям ниже отсюда: Configure VERP to handle bouncing e-mails. Примечание: для меня URL SNS был https://eu-west-2.console.aws.amazon.com/sns/v3/home?region=eu-west-2#/dashboard
Решил не включать «Enable raw message delivery» (надеюсь, это правильно).
Пересборка не потребовалась:
Discourse - Admin - Email - Email settings - Preview summary - Я использовал это для тестирования отправки писем на валидные и невалидные адреса.
Протестировал на https://www.mail-tester.com/ - 10/10 ![]()
Discourse - Admin - Email - Email logs. Полезно проверять. Кстати, ошибка, описанная по ссылке "Discourse::NotFound" error when click "Email Type" field on admin/email/bounced, больше не возникает.
Проверил, отправляется ли уведомление по электронной почте при создании новой темы, как ожидалось.
Проверил, отправляется ли ответ по электронной почте в ответ на эту тему.