База знаний

Отправляйте электронные письма через собственный аккаунт 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 автоматически приостанавливает отправку, когда показатель возвратов или жалоб превышает их пороговое значение, и этот порог легко пересечь со старым списком клиентов.

Всё ещё нужна помощь?

Поддержка включена в каждый тарифный план, а ответы предоставляются на вашем родном языке.

Обратиться в поддержку Все статьи
Отправляйте электронные письма через собственный аккаунт Amazon SES