Домен подтвержден в SES, поэтому параметр аутентификации SMTP не требуется.
Кроме того, возможно, вам потребуется вывести ваш аккаунт SES из режима песочницы, если это еще не сделано, и запросить увеличение лимитов. Ограничения режима песочницы применяются в разрезе каждого региона.
Я до сих пор не понимаю, почему письма не отправляются через AWS SES.
Когда я отправляю тестовое письмо через админ-страницу нашего Discourse, там просто пишется «отправлено». Попытка запроса восстановления пароля также проходит все необходимые шаги, но письмо так и не приходит.
Кажется, что в SES нет логов, поэтому я не могу проверить, получает ли он письма вообще.
Единственное, что может вызывать проблему, — это то, что адрес для ответов использует аккаунт gmail.com, а не домен нашего сайта.
Столкнулся ли кто-нибудь с такой комбинацией или сценарием ранее?
Это тот адрес, который будет указан в строке «От кого». Он должен быть адресом в домене, из которого SES будет отправлять письма. SES не будет отправлять письма, которые притворяются исходящими от gmail. У вас нет контроля над gmail.com, поэтому SES не отправит письмо с этим доменом в строке «От кого». notification_email должен быть в формате что-то@вашподтвержденныйдомен
Я тоже использую SES, и у меня всё работает отлично. Единственное различие, которое я вижу в сравнении с вашей конфигурацией, — у меня отсутствует строка DISCOURSE_SMTP_AUTHENTICATION: login. Также у меня закомментированы параметры DISCOURSE_SMTP_ENABLE_START_TLS: true и DISCOURSE_SMTP_PORT: 587, хотя это не должно влиять на работу.
В файле app.yml я изменяю только три строки: SMTP-адрес, имя пользователя и пароль. Остальное закомментировано по умолчанию, как при чистой установке. После пересборки мне нужно лишь убедиться, что в настройках сайта параметр «notification email» установлен на адрес, использующий домен, верифицированный в SES. Я больше не использую кавычки для пароля, но в моих старых установках они были, и всё работало в любом случае.
Да, стоит попробовать изменить адрес ответа (reply-to) на адрес, использующий верифицированный домен SES, как рекомендовано в предыдущем ответе, просто чтобы проверить, начнёт ли письмо отправляться корректно.
Если это не поможет, проверьте, не блокирует ли ваш хост некоторые порты, и ещё раз убедитесь, что учётные данные SES сгенерированы правильно. Я вижу, что выше вы подтвердили, что ваш домен верифицирован в SES.
Адрес для ответов находится в том же домене, что и домен отправителя, да, но в некоторых случаях это не тот же поддомен (хотя корневой домен всё тот же). Оба варианта у меня работают отлично.
Уверен, вы это заметили — проверили ли вы исходящий адрес электронной почты, который Discourse использует для отправки?Если это notify@вашпроверенныйдомен, вам нужно зайти в SES, во вторую строку под «Управление идентификаторами», добавить и затем подтвердить отправляющий адрес. Ничего не отправится, пока вы этого не сделаете.Никаких тревог, никаких сирен — просто ничего не происходит.Ответ с Gmail — это отлично. Я поступил именно так. Тогда письма с авторизацией для участников попадали в спам, потому что адреса From и Reply не совпадали.В итоге я написал простой AWS Lambda (потребовалась неделя, чтобы разобраться), который пересылает входящие письма в API Discourse. Очень чисто. Никакого Postfix.