Інтеграція email-рассилки (Amazon SES)
Amazon SES (Simple Email Service) — один з найдешевших варіантів для відправлення великих обсягів email. Вартість: $0.10 за 1000 листів при відправленні через EC2, $0.10 за 1000 при зовнішній відправленні. Потребує більше початкової налаштування, ніж готові ESP.
Верифікація домену
Перед відправленням потрібно верифікувати домен через DNS-записи (DKIM, DMARC). В AWS Console: SES → Verified identities → Create identity → Domain. AWS генерує CNAME-записи для додавання в DNS.
Вихід з Sandbox
За замовчуванням SES працює в sandbox-режимі: можна відправляти тільки на верифіковані email. Для продакшну потрібно запросити вихід з sandbox через AWS Console (зазвичай схвалюється за 24–48 годин).
Відправлення через AWS SDK
// composer require aws/aws-sdk-php
$ses = new \Aws\Ses\SesClient([
'region' => 'eu-west-1',
'credentials' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY')
]
]);
$ses->sendEmail([
'Source' => '[email protected]',
'Destination' => ['ToAddresses' => [$to]],
'Message' => [
'Subject' => ['Data' => "Замовлення #{$orderId} підтверджено", 'Charset' => 'UTF-8'],
'Body' => [
'Html' => ['Data' => $htmlBody, 'Charset' => 'UTF-8'],
'Text' => ['Data' => $textBody, 'Charset' => 'UTF-8']
]
],
'ConfigurationSetName' => 'production-tracking' // для трекінгу событий
]);
Laravel SES Driver
MAIL_MAILER=ses
AWS_DEFAULT_REGION=eu-west-1
AWS_ACCESS_KEY_ID=AKIA...
AWS_SECRET_ACCESS_KEY=...
// config/services.php
'ses' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
'options' => [
'ConfigurationSetName' => 'production-tracking',
'Tags' => [['Name' => 'Environment', 'Value' => 'production']]
],
],
Configuration Sets та SNS сповіщення
Configuration Sets дозволяють отримувати события доставки через Amazon SNS (Simple Notification Service) → Lambda або HTTP endpoint:
-
send,delivery,bounce,complaint,open,click - Bounce та Complaint критично важливі: потрібно негайно відписувати скаржучихся
SES Suppression List
AWS автоматично блокує повторну відправлення на адреси з hard bounce або скаргами. Перед відправленням слід перевіряти адресу через API, щоб не витрачати квоту.
Тривалість інтеграції: 1 робочий день (+ 24–48 годин на верифікацію домену та вихід з sandbox).







