Проблема с Discourse и MailJet

У меня всё работало отлично с Amazon SES в режиме песочницы, но Amazon отказал мне в доступе к продакшн-режиму.
Я решил попробовать MailJet, но, кажется, что-то упускаю и не могу понять, в чём дело.

Есть ли идеи, что я делаю не так?

В Discourse ошибок нет, там написано «Письмо отправлено».
Я могу подключиться по Telnet к SMTP-адресу и порту.

В MailJet:
SPF/DKIM — зелёные.
Домен форума активен.
Мой zzz@gmail.com также активен.

Мой app.yml:

  DISCOURSE_SMTP_ADDRESS: in-v3.mailjet.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: xxx (из API подучета)
  DISCOURSE_SMTP_PASSWORD: "yyy" (из API подучета)
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (необязательно, по умолчанию true)
  DISCOURSE_SMTP_DOMAIN: gmail.com
  DISCOURSE_NOTIFICATION_EMAIL: zzz@gmail.com

Вы не можете отправлять письма с Gmail.com. Вам нужно использовать адрес домена, для которого вы настроили отправку писем через Hey. SMTP-домен должен совпадать с именем вашего хоста, хотя, вероятно, это не имеет значения (если только это не так).

Я только что попробовал изменить DISCOURSE_SMTP_DOMAIN с gmail.com на свой домен Route53, а также отключить шифрование TLS, но это не помогло.
Так ли это должно быть настроено?

Пока не понимаю, в чём проблема…

Вот как у меня настроено:

  DISCOURSE_SMTP_ADDRESS: in-v3.mailjet.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: xxx (из API подаккаунта)
  DISCOURSE_SMTP_PASSWORD: "yyy" (из API подаккаунта)
  DISCOURSE_SMTP_ENABLE_START_TLS: false           # (необязательно, по умолчанию true)
  DISCOURSE_SMTP_DOMAIN: mydomain.net
  DISCOURSE_NOTIFICATION_EMAIL: noreply@mydomain.net

Значит, Mailjet принимает его. Мы не можем определить, не отправляет ли оно письмо или ваш почтовый ящик его отклоняет (вы проверили папку «Спам»?)

Смотрите Устранение неполадок с электронной почтой при новой установке Discourse

Да, я пробовал это и пытался полностью перенастроить MailJet, сгенерировать новые ключи.

Попробовал разные порты (25, 465, 587) с TLS и без — безрезультатно.

С портами 25 и 465 Discourse хотя бы сообщает, что что-то не работает, а с портом 465 пишет 250 OK queued as xxxx.

Дело в том, что в статистике MailJet за этот период не показано ни одного отправленного письма.

Ключи в порядке. Проблема, скорее всего, в адресе отправителя.

Если Discourse сообщает, что письмо доставлено, значит, Mailjet его принял, и оно должно быть в логах. Вы пробовали mail-tester.com?

Ну, это довольно хороший инструмент…
Сначала я попробовал, но письмо так и не пришло.
Я получил уведомление от MailJet о том, что я пытаюсь отправить письмо с адреса noreply@www.zzz.net — это изменение я попытался применить немного раньше, следуя процедуре устранения неполадок.

Я убрал www, фактически вернувшись к своей предыдущей конфигурации, но на этот раз всё сработало… Думаю, я так и не узнаю, почему.

Спасибо за вашу помощь, всё шло отлично, пока Amazon SES не отказал мне, и мне пришлось искать альтернативу.

Вот конфигурация, которая работает сейчас:

  DISCOURSE_SMTP_ADDRESS: in-v3.mailjet.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: xxx
  DISCOURSE_SMTP_PASSWORD: "yyy"
  DISCOURSE_SMTP_ENABLE_START_TLS: false           # (необязательно, по умолчанию true)
  DISCOURSE_SMTP_DOMAIN: mydomain.net
  DISCOURSE_NOTIFICATION_EMAIL: noreply@mydomain.net