Вам знадобиться обліковий запис 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:
| Type | Host |
|---|
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 та SPF TXT, які запитає система. Без цього відправником вашого конверта є amazonses.com, тому SPF узгоджується з Amazon, а не з вами, і ви покладаєтеся виключно на DKIM.
3. Вийдіть із «пісочниці» — це крок, про який часто забувають
⛔⛔ Новий обліковий запис SES перебуває в «пісочниці» (sandbox) і може надсилати листи лише на ті адреси, які ви підтвердили окремо. Він прийматиме всі інші повідомлення, але не доставить жодного з них.
Це саме та помилка, для виявлення якої існує наш крок перевірки: у «пісочниці» SES приймає ваше повідомлення зі звичайною відповіддю про успіх, а потім просто скидає його. Якщо ви перевірите наші налаштування, надіславши тестовий лист на адресу, яку випадково підтвердили в AWS, усе спрацює — але потім кожне повідомлення до реального клієнта просто зникатиме.
Панель керування обліковим записом → Request production access. Amazon запитає, що саме ви надсилаєте та як обробляєте повернення листів; пара чесних речень про транзакційні сповіщення для ваших власних клієнтів зазвичай схвалюється протягом 24 годин.
⭐ Зробіть це до того, як підключатимете SES тут. Після цього нічого не доведеться налагоджувати, оскільки збоїв не виникатиме.
4. Створіть облікові дані SMTP
Консоль SES → SMTP settings → Create SMTP credentials.
Це створить користувача IAM із правами лише на відправлення та надасть вам ім'я користувача SMTP і пароль SMTP.
⛔ Це не ваші ключ доступу та секретний ключ AWS. Вони генеруються із секрету IAM за спеціальним алгоритмом і не є взаємозамінними. Вставка секретного ключа доступу AWS сюди призводитиме до помилки автентифікації щоразу, і в тексті помилки просто йтиметься про те, що облікові дані було відхилено.
⚠️ Пароль показується лише один раз. Завантажте файл CSV перед тим, як залишити сторінку.
5. Підключіть це в Zinn®
Відкрийте розділ Email sending на панелі керування:
- Provider — Amazon SES
- Send from this domain —
mail.yourdomain.com
- AWS region — регіон із кроку 1, наприклад
eu-west-1
- SMTP username — із кроку 4
- Port — залиште 587
- SES SMTP password — із кроку 4
Ми формуємо адресу хоста автоматично (email-smtp.<region>.amazonaws.com), тож ви не помилитеся в імені хоста.
6. Надішліть тестовий лист і введіть код
Натисніть Send test message на поштову скриньку на іншому домені, який ви не підтверджували в AWS — особиста адреса Gmail підійде ідеально, оскільки саме вона доведе, що ви вийшли з «пісочниці». Перегляньте код і введіть його.
Якщо щось не працює
«Email address is not verified» під час надсилання реальному клієнту — ви все ще перебуваєте в «пісочниці». Дивіться крок 3.
535 Authentication Credentials Invalid — ви використали свій ключ доступу AWS замість облікових даних SMTP (крок 4), або ж облікові дані належать іншому регіону, ніж той, який ви вказали.
«Maximum sending rate exceeded» — новий робочий обліковий запис починає з 14 повідомлень на секунду та 50 000 на день. Це дуже багато для сповіщень, але якщо ви переносите велику клієнтську базу, спершу подайте запит на збільшення ліміту.
Усе працювало під час тестування, але перестало працювати на практиці — перевірте панель керування SES Reputation. Amazon автоматично призупиняє відправлення, коли рівень повернень або скарг перевищує їхній поріг, а зі старою клієнтською базою його легко перевищити.