Документация / Make

Отправка почты в Make через SMTP или REST API

В Make отправлять через fmailer можно двумя способами: модулем Send an Email приложения Email по SMTP или модулем Make a request приложения HTTP через REST API. Оба используют один и тот же токен домена. Начните с SMTP, а на HTTP переходите, когда понадобятся шаблоны или безопасные повторы.

ℹ
Логин и пароль можно получить на странице токенов домена.

Параметры подключения

ПараметрЗначение
SMTP-хостsmtp.fmailer.ru
Порт587
ШифрованиеSTARTTLS (соединение переводится в TLS до авторизации)
ЛогинЛогин токена вашего домена
ПарольПароль этого токена — показывается один раз, при создании
ℹ
Каждый режим доступен и на высоком порту: 8465 (SSL/TLS), 8587 (STARTTLS) и 8025 (без шифрования). Многие хостинги и облака блокируют исходящие 25, 465 и 587 — если соединение обрывается по таймауту, используйте соответствующий высокий порт.

SMTP-подключение

Добавьте в сценарий модуль Email → Send an Email и нажмите Create a connection. Выберите SMTP-подключение для других провайдеров — не Google Restricted и не Microsoft SMTP/IMAP OAuth, — в списке почтовых провайдеров выберите Other и заполните:

ПолеЗначение
SMTP serversmtp.fmailer.ru
Port587
Secure connection (TLS)Включено, с explicit TLS — это STARTTLS
User nameЛогин токена вашего домена
PasswordПароль этого токена
Отправитель по умолчанию, если форма его проситnoreply@mail.example.ru — на подтверждённом домене
⚠
Explicit TLS — это STARTTLS, он работает с портом 587. Защищённое соединение без explicit TLS — это TLS с первого байта, для него нужен порт 465. Любая другая комбинация приведёт к ошибке рукопожатия, и Make не сохранит подключение.

Модуль Send an Email

Сопоставьте To, Subject и содержимое письма с данными предыдущих модулей; если отправляете вёрстку, выберите тип содержимого HTML. Адрес отправителя должен быть на подтверждённом домене: именно его подписывает DKIM и по нему проверяются SPF и DMARC. Адрес клиента из формы ставьте в Reply-To, но не в From.

Проверка

Укажите в To свой адрес и нажмите Run once. Если модуль упадёт, откройте его в результатах запуска: ответ SMTP-сервера подскажет, что не так — порт, шифрование или учётные данные.

Второй способ: HTTP → Make a request

Вызов API отправки через приложение HTTP:

ПолеЗначение
Authentication typeNo authentication — токен передаётся в теле
URLhttps://api.fmailer.ru/external/send_email_simple/
MethodPOST
Body content typeapplication/json
Body input methodData structure
Parse responseYes
Return error if HTTP request failsYes (в дополнительных настройках)

Структура данных повторяет это тело: to — массив строк, auth — коллекция с полями username и password.

Тело запросаjson
{
  "to": ["{{1.email}}"],
  "subject": "Заказ {{1.order_id}} принят",
  "body": "<p>Спасибо! Доставка — завтра до 18:00.</p>",
  "sender": "Магазин <noreply@mail.example.ru>",
  "idempotency_key": "order-{{1.order_id}}",
  "auth": {
    "username": "<логин токена>",
    "password": "<пароль токена>"
  }
}

Почему Data structure, а не JSON string. Значения, подставленные в структуру данных, Make экранирует сам, поэтому HTML с кавычками и переносами строк остаётся корректным JSON. В режиме JSON string тот же запрос сломается на первой же кавычке в данных. idempotency_key защищает от повторной отправки: запрос с тем же ключом вернёт первый результат, поэтому повторы в Make безопасны. Пароль токена хранится в настройках модуля — его увидит любой, кто может редактировать сценарий.

В ответе приходит идентификатор письма, который потом сообщают все вебхуки доставки:

json
{
  "ok": true,
  "emails": [
    {
      "ok": true,
      "message_id": "<uuid@mail.example.ru>",
      "uuid": "uuid",
      "recipient": "client@example.ru",
      "kind": "to",
      "idempotency_key": "order-4417",
      "replayed": false
    }
  ]
}

Разбор ошибок

СимптомПричина и решение
Подключение не сохраняется, ошибка рукопожатия Режим TLS не совпадает с портом: explicit TLS — для 587, implicit — для 465.
535 — ошибка авторизацииНеверный логин или пароль токена.
550 from must be equal to …Адрес отправителя не на подтверждённом домене.
HTTP 400 Invalid username or passwordНеверный токен в auth тела запроса.
HTTP 400 Invalid sender, must end with @…sender на другом домене, чем токен.
HTTP 400 JSON parse errorПодставленное значение сломало JSON string — используйте Data structure.
HTTP 400 Hourly limit exceededИсчерпан лимит тарифа. Снимается сам — повторите позже.

Частые вопросы

Можно ли в Make отправлять почту через свой SMTP-сервер?

Да. Модуль Send an Email приложения Email принимает SMTP-подключение для провайдеров, кроме Google и Microsoft. Выберите Other в списке почтовых провайдеров и укажите сервер, порт, логин и пароль токена.

Какой порт указывать в Make?

587 со STARTTLS — в форме подключения Make это называется explicit TLS. Если нужен TLS с первого байта, указывайте 465 с включённым защищённым соединением и выключенным explicit TLS. Смешанная комбинация — причина, по которой подключение не сохраняется.

Почему нельзя отправить письмо от адреса клиента?

По адресу отправителя проверяются DKIM, SPF и DMARC, а ваши записи покрывают только ваш домен. Письмо с From на другом домене сервер отклонит. Адрес клиента ставьте в Reply-To.

SMTP или HTTP — какой модуль выбрать?

Модуль Email настраивается быстрее. Модуль HTTP с вызовом REST API даёт шаблоны из панели, ключ идемпотентности для безопасных повторов и ответ с идентификатором письма, который приходит во всех вебхуках доставки.

Почему HTTP-запрос падает, если в письме есть кавычки?

В режиме JSON string значения подставляются как есть, и кавычка или перенос строки в них ломает JSON. Используйте режим Data structure — в нём Make экранирует подставленные значения сам.

Где посмотреть причину ошибки отправки?

В истории запусков сценария: откройте неудачную операцию и посмотрите вывод модуля. Для модуля HTTP включите Return error if HTTP request fails, чтобы отказ останавливал запуск, а не проходил незаметно.

Что дальше