Как использовать Mailjet в качестве бесплатного SMTP-сервиса для Discourse

В этом небольшом руководстве я покажу, как использовать Mailjet в качестве бесплатного SMTP-сервиса для Discourse.

На данный момент Mailjet позволяет отправлять 6000 писем в месяц или 200 писем в день бесплатно и без указания данных вашей кредитной карты.

Регистрация
Зарегистрируйтесь здесь: Mailjet (это не реферальная ссылка).

Затем подтвердите свой аккаунт, перейдя по ссылке в полученном письме.

Создание вашего домена
Перейдите в настройки вашего аккаунта: Mailjet

Нажмите «Добавить домен или адрес отправителя».

Затем добавьте ваш домен.
(Обратите внимание: для подтверждения домена у вас должен быть доступ к хостингу вашего сайта или к аккаунту регистрации домена.)

Добавление нового домена

Подтверждение домена через DNS
Войдите в панель управления вашего DNS-хостинга.

Добавьте новую DNS-запись на основе данных из Mailjet.

Добавьте новую TXT DNS-запись в ваш DNS-сервис. В данном случае это Cloudflare.

Завершите проверку, вернувшись в окно Mailjet и нажав «Проверить сейчас».

После завершения вы увидите окно, подобное этому:

Настройка аутентификации SPF
В разделе Mailjet «Отправители и домены» вы найдете эту опцию.

Создайте новую TXT DNS-запись с рекомендуемыми настройками:

После этого вы должны увидеть окно с зелёным индикатором.

Настройка DomainKeys/DKIM

Создайте новую TXT DNS-запись.
Пожалуйста, убедитесь, что она находится в одной строке!

Настройка имени пользователя и пароля
Сначала вам нужно сгенерировать ваш секретный ключ, который в дальнейшем будет использоваться как SMTP-пароль. Для этого перейдите на страницу Управление ключами API.

На этой странице вы увидите, что ваш API-ключ (который будет использоваться как SMTP-имя пользователя) уже создан, но частично скрыт, тогда как секретный ключ необходимо сгенерировать:

Нажмите кнопку Сгенерировать секретный ключ. Появится новое модальное окно, содержащее ваш API-ключ и секретный ключ. Скопируйте их в надёжное место, так как они понадобятся на следующем этапе. Если вы потеряете секретный ключ, вам придётся сгенерировать его заново и повторно настроить SMTP в Discourse.

После генерации ключей перейдите на страницу Настройки SMTP и SEND API в Mailjet, чтобы получить остальные необходимые параметры.

Установка Discourse.
При первоначальной настройке Discourse используйте следующие параметры:

  • Адрес SMTP-сервера = SMTP-сервер MailJet
  • Порт SMTP = SMTP-порт (это будет 25 или 587; обратите внимание, что некоторые провайдеры блокируют порт 25).
  • Имя пользователя SMTP = API-ключ MailJet, который вы скопировали.
  • Пароль SMTP = Секретный ключ MailJet, который вы скопировали.

Ваша настройка будет выглядеть примерно так:

После этого вы готовы к использованию сервиса. :partying_face: :partying_face: :partying_face:

Я создал аккаунт в MailJet и тестирую его.

Когда новый пользователь регистрирует аккаунт на Discourse, он получает письмо для активации от noreply@XXX.com. Это работает нормально.

Но если пользователь хочет отправить письмо мне (администратору) на admin@XXX.com, оно возвращается с ошибкой:

554 5.7.1 admin@XXX.com: Доступ к ретранслятору запрещён

Как это исправить?

В зависимости от того, что вы пытаетесь сделать, это, скорее всего, не проблема Discourse.

Если вы пытаетесь использовать Mailjet в качестве SMTP-сервера для вашей индивидуальной почты в дополнение к функциям массовой рассылки, которые использует Discourse, это не совсем поддерживается: Могу ли я использовать Mailjet для внутренней корпоративной переписки? Вам потребуется настроить другой сервис для отправки и получения такого рода писем (Google Workspace, Zoho Mail и т. д.).

@JammyDodger Я не могу обновить это, но некоторые скриншоты и шаги устарели для этого случая.

Если вы заинтересованы в обновлении, я могу превратить это в вики и переместить в раздел руководств? (:crossed_fingers:)

Конечно, с радостью разберёмся и обновлю то, что могу. Это может занять пару дней.

@JammyDodger Я обновил часть настройки Discourse. Я ещё не подтвердил настройки DKIM и т.п., но я посмотрю, что можно сделать и с ними.

Скриншот для Namecheap

Примечание:
Само доменное имя не должно включаться в поле «Хост». Это означает, что если вам нужно добавить запись для something._domainkey.yourdomain.tld, в качестве значения поля «Хост» следует указать только something._domainkey (даже если ваш провайдер услуг попросил добавить и само доменное имя). Это требование системы.

Спасибо! Как я могу изменить данные SMTP позже? В этом руководстве описывается, как сделать это во время первоначальной установки Discourse.

Не конкретно о MailJet, но подробности здесь: Change SMTP settings in a working forum - #5 by slackmoehrle