База знаний
Отправляйте электронные письма через собственный аккаунт Amazon SES
Подключите собственную учетную запись Amazon SES через SMTP: выберите один регион и оставайтесь в нем, используйте Easy DKIM, выйдите из изолированной среды ДО подключения и помните, что учетные данные SMTP — это не ваш ключ доступа AWS.
Вам потребуются учетная запись AWS и доступ к DNS вашего домена. SES — это самый дешевый вариант в этом списке с большим отрывом и тот, который требует больше всего шагов.
Документация самой компании Amazon: Подтверждение домена · Получение учетных данных SMTP · Выход из изолированной среды
⭐ Мы подключаемся к SES через его интерфейс SMTP, а не через REST API. Именно поэтому у вас запрашивают имя пользователя и пароль SMTP, а не ключ доступа AWS. Оба пути доставляют абсолютно одинаковое сообщение; вариант с SMTP позволяет избежать целого класса проблем с подписью запросов AWS, которые трудно диагностировать извне, и это интерфейс, для которого Amazon публикует учетные данные как раз для того, чтобы такие инструменты, как наш, могли им пользоваться.
1. Выберите регион и оставайтесь в нем
SES привязан к регионам. Все, что указано ниже — ваш подтвержденный домен, ваши учетные данные, ваша квота на отправку, — принадлежит одному региону AWS и не существует ни в каком другом.
Выберите тот, который ближе к вашим клиентам (eu-west-1 для Европы, us-east-1 для Северной Америки), и запишите его. Подтверждение домена в Ирландии с последующим созданием учетных данных во Франкфурте — самый верный способ потерять здесь полдня, причем возникающая при этом ошибка ничего не говорит о регионах.
2. Подтвердите свой домен
Консоль Amazon SES → Идентичности (Identities) → Создать идентичность (Create identity) → Домен (Domain). Введите поддомен, такой как mail.yourdomain.com.
Включите Easy DKIM и выберите RSA_2048_BIT. SES предоставляет вам три записи CNAME:
| Тип | Хост | | --- | --- | | CNAME | <token1>._domainkey.mail.yourdomain.com | | CNAME | <token2>._domainkey.mail.yourdomain.com | | CNAME | <token3>._domainkey.mail.yourdomain.com |
Добавьте все три. Подтверждение обычно завершается в течение часа.
⭐ Также включите пользовательский домен MAIL FROM (bounce.mail.yourdomain.com) и добавьте запрашиваемые им записи MX и TXT для SPF. Без этого отправителем вашего конверта будет amazonses.com, поэтому SPF будет сопоставляться с Amazon, а не с вами, и вы будете полагаться исключительно на DKIM.
3. Выйдите из изолированной среды — это тот шаг, который люди упускают
⛔⛔ Новая учетная запись SES находится в изолированной среде (sandbox) и может отправлять сообщения только на адреса, которые вы подтвердили отдельно. Она примет все остальное и не доставит ничего.
Именно этот сбой и призван выявить наш шаг верификации: в изолированной среде SES принимает ваше сообщение с совершенно обычным ответом об успешном выполнении, а затем сбрасывает его. Если вы подтвердите нашу настройку, отправив тестовое сообщение на адрес, который вы случайно подтвердили в AWS, все сработает — а затем каждое сообщение реальному клиенту исчезнет.
Панель управления учетной записью (Account dashboard) → Запрос доступа к продакшн-среде (Request production access). Amazon спрашивает, что вы отправляете и как обрабатываете возвраты; пара честных предложений о транзакционных уведомлениях вашим собственным клиентам обычно одобряется в течение 24 часов.
⭐ Сделайте это до того, как подключите SES здесь. После этого ничего не нужно отлаживать, потому что ничего не ломается.
4. Создайте учетные данные SMTP
Консоль SES → Настройки SMTP (SMTP settings) → Создать учетные данные SMTP (Create SMTP credentials).
Это создает пользователя IAM с правом только на отправку и предоставляет вам имя пользователя SMTP и пароль SMTP.
⛔ Это не ваш ключ доступа AWS и секретный ключ. Они производятся из секретного ключа IAM по определенному алгоритму и не являются взаимозаменяемыми. Вставка сюда секретного ключа доступа AWS будет каждый раз приводить к сбою аутентификации, а ошибка будет просто сообщать, что учетные данные отклонены.
⚠️ Пароль отображается один раз. Загрузите CSV-файл, прежде чем покинуть страницу.
5. Подключите его в Zinn®
Откройте пункт Отправка электронной почты в своей панели управления:
- Поставщик — Amazon SES
- Отправлять с этого домена —
mail.yourdomain.com - Регион AWS — регион из шага 1, например
eu-west-1 - Имя пользователя SMTP — из шага 4
- Порт — оставьте 587
- Пароль SMTP SES — из шага 4
Мы сами формируем хост для вас (email-smtp.<region>.amazonaws.com), поэтому ошибиться в имени хоста невозможно.
6. Отправьте тест и введите код
Нажмите Отправить тестовое сообщение на почтовый ящик в другом домене, который вы не подтверждали в AWS — личный адрес Gmail идеально подходит, так как именно он доказывает, что вы вышли из изолированной среды. Прочтите код и введите его.
Когда это не работает
«Адрес электронной почты не подтвержден» («Email address is not verified») при отправке реальному клиенту — вы все еще находитесь в изолированной среде. Шаг 3.
535 Учетные данные аутентификации недействительны (535 Authentication Credentials Invalid) — вы использовали свой ключ доступа AWS вместо учетных данных SMTP (шаг 4) или учетные данные принадлежат к региону, отличному от введенного вами.
«Превышена максимальная скорость отправки» («Maximum sending rate exceeded») — новая производственная учетная запись начинает с 14 сообщений в секунду и 50 000 в день. Это огромное количество уведомлений, но если вы мигрируете большую клиентскую базу, сначала запросите увеличение квоты.
В тесте все работало, а в продакшне остановилось — проверьте панель управления Репутация (Reputation) в SES. Amazon автоматически приостанавливает отправку, когда показатель возвратов или жалоб превышает их пороговое значение, и этот порог легко пересечь со старым списком клиентов.
Всё ещё нужна помощь?
Поддержка включена в каждый тарифный план, а ответы предоставляются на вашем родном языке.
Обратиться в поддержку → Все статьи →