Содержание

Что такое SMTP-гейт

SMTP-гейт – это способ передачи нам заданий на отправку писем через SMTP-протокол. Разница между API и SMTP в использовании протокола передачи данных: SMTP или HTTP протокол. По SMTP-протоколу для отправки на сервер используется последовательность команд.

enKod поддерживает:

Авторизация и отправка сообщения

enKod аутентификация осуществляется с помощью SMTP-ключей. Получите от вашего персонального менеджера SMTP-ключ для использования SMTP-гейта.

Подключение к SMTP-серверу осуществляется по адресу: smtpgateway.enkod.io:587

Используйте следующую последовательность команд:

Пример запроса на отправку через openssl

s_client -starttls smtp -connect smtpgateway.enkod.io:587
ehlo testmail.ru
auth plain AABfN3lhTUZtcm5hZ251VFRXR1lueVNiQWNLX2R4VTh4WWVYdzV2UzBYXVpMQ==
mail from:test@testmail.ru
rcpt to:test2@testmail.ru
data
Date: Thu, 29 Sep 2022 15:42:13 GMT
From: test@testmail.ru
To: test2@testmail.ru
Subject: subject
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office" style="font-family:'open sans', 'helvetica neue', helvetica, arial, sans-serif">
<head>
<meta charset="UTF-8"/>
<meta content="width=device-width, initial-scale=1" name="viewport"/>
<meta name="x-apple-disable-message-reformatting"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta content="telephone=no" name="format-detection"/>
<title>title</title><!--[if (mso 16)]>
<style type="text/css">
a {text-decoration: none;}
</head>
<html>
<body>
message body
</body>
</html>

Особенности отображения тем и отправителя сообщений

Яндекс обновил правила по обработке тем писем:

Можно использовать в них такую структуру: =?charset?encoding?encoded-text?=

Например отправлять тему в виде:

Subject: =?utf-8?B?0KLQtdGB0YIgU01UUCDlhbzQvNC+0LQ=?=

Если адрес в поле От кого сформирован не с использованием стандарта RFC, в нём будет проставляться EMPTY-FROM. В свойствах письма тоже будет From: EMPTY-FROM.

Возможные ошибки

Процесс отправки сообщения

Запрос → enKod → Принимающий почтовый сервер

Шаг 1. enKod проверяет полученный запрос (действителен ли API-ключ, валиден ли указанный email и др.)

Шаг 2. enKod пытается связаться с почтовым сервером.

Финальный статус доставки зависит от множества факторов (репутация домена отправителя, существование почтового ящика получателя и т.д.). Дополнительно принимающий почтовый сервер может попросить отправить письмо позже - для этого мы используем собственный механизм переотправок. Этот процесс может затянуться, поэтому чтобы не задерживаться с ответом - enKod проводит первоначальные проверки на шаге 1 и отвечает, что все отработало корректно.

После того как письмо было отправлено, мы не возвращаем сразу ошибку, которая произошла на стороне принимающего почтового сервера. Из-за этого запрос может отработать успешно, но в статистике будет отражаться ошибка.

Для получения информации о финальном статусе доставки сообщения вы можете настроить Webhooks.