- PVSM.RU - https://www.pvsm.ru -
Здравствуйте!
Сегодня я расскажу как настроить массовую рассылку писем через Amazon SES с нуля.
Для начала нужно иметь аккаунт в Amazon Web Services и прикреплённый к нему метод оплаты сервиса. Если у Вас это есть, смело можем начинать!
Итак, пройдём в консоль: https://console.aws.amazon.com [1]. В списке сервисов ищем SES. Т.к. мы раньше не имели дела c SES, нас встречает удручающая надпись:

После всех регистраций и подтверждений, что Вы не спамер, Вы получите минимальные лимиты на отправку:

Далее, нам нужно указать и подтвердить адрес, который будет указан в письмах в поле From.
В меню Verified Senders ищем кнопочку Verify a new sender

Итак, осталось совсем чуть-чуть. Мы должны создать создать пользователя IAM, дать ему права отсылать почту и присвоить ему пару ключей. Идём сюда: https://console.aws.amazon.com/iam [2].
Создаём новую группу:

Называем её:

В шаблонах политики безопасности находим уже готовый шаблон Amazon SES Full Access:

После этого Далее, Далее, Далее и создали группу пользователей.
Следующий шаг — создать пользователя в меню Users:

Создаём пользователя и сразу генерируем для него пару ключей:

Пользователь создан:

Сохраним пару его ключей:
Добавим пользователя в группу, которую создали до этого, тем самым дав права пользователю:

Итак, у нас есть пара ключей, которым даны права отправлять письма в SES.
Для того, чтоб валидировать Amazon SES как рассыльщика почты, к вашему домену добавьте SPF запись:
v=spf1 include:amazonses.com ?all
Далее копируем себе файлы из репозитория github.com/korjik/PHP-SES-mailer [3]
ses.php — класс для соединения с SES — www.orderingdisorder.com/aws/ses/ [4]
users.csv — пример списка пользователей в формате
«username»,«username@email.com»
send_email.php — сама программа рассылки почты.
В send_email.php нужно заменить следующие параметры:
Пару ключей:
$ses = new SimpleEmailService('Access Key Id', 'Secret Access Key');
Валидированый адрес From:
$m->setFrom('validated@email.com');
Далее заполняем 2 текстовых поля — переменные $text_email и $html_email именами отвечают сами за себя.
Если подготовления сделаны, скрипт можно запустить с параметром пути к файлу users.csv:
$ php send_email.php users.csv
Все пользователи, указанные в users.csv получат имейлы.
Не используйте валидированный From адрес из чужих доменов. Отсутвие SPF записи повышает шанс писем попасть в спам.
Как вы заметили, мы можем в каждое письмо вставлять имя пользователя, считанное как $username=$user_fields[0] из CSV файла. Тем самым, вы сами можете менять формат CSV, добавлять кастомные поля и т.д.
Если есть вопросы, пишите, отвечу.
ЗЫ. Статья написана специально для господина m31.
Автор: korjik
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/amazon-web-services/4570
Ссылки в тексте:
[1] https://console.aws.amazon.com: https://console.aws.amazon.com
[2] https://console.aws.amazon.com/iam: https://console.aws.amazon.com/iam
[3] github.com/korjik/PHP-SES-mailer: https://github.com/korjik/PHP-SES-mailer
[4] www.orderingdisorder.com/aws/ses/: http://www.orderingdisorder.com/aws/ses/
Нажмите здесь для печати.