Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)
В этом уроке я расскажу о простой службе электронной почты Amazon (SES) и рассмотрю несколько способов ее использования. SES - это служба исходящей электронной почты, что означает, что она позволит вам отправлять электронные письма через нее.
Зачем вам нужна служба электронной почты? Ну, со многими хостинг-провайдерами, отправка большого количества электронных писем (возможно, у вас есть много клиентов, использующих ваш интернет-магазин), может быть проблемой, поскольку у хостов, как правило, есть на это свои ограничения. Стандартной альтернативой является использование Gmail для отправки электронных писем, однако она также имеет ограничения. Здесь на сцену выходит SES, поскольку он предназначен для этой цели. SES делает отправку электронных писем более надежной, и, используя немного магии, она также помогает вашим письмам избегать спам-папок.
Ценообразование
Когда вы подписываетесь на Amazon, вы можете использовать их свободный доступ в течение двенадцати месяцев. Свободный уровень даст вам доступ ко всем услугам Amazon, но с некоторыми ограничениями. Например, SES ограничена 2000 сообщениями в день, если вы выберете свой хост EC2.
В противном случае стоимость составляет 0,10 доллара за тысячу сообщений. Они рассматривают одно сообщение как одно сообщение для одного получателя. Поэтому, если вы отправляете одно электронное письмо на 1000 адресов электронной почты, это будет стоить вам 10 долларов.
Прикрепление файлов стоит 0,12 доллара США за 1 GB.
Варианты использования SES
В настоящее время существует два способа использования SES:
- Простой протокол передачи почты (обычно известный как SMTP)
- API SDK
Они работают по-разному; SMTP позволяет напрямую ссылаться на сервер электронной почты, тогда как метод API позволяет отправлять электронные письма через службу AWS SES. В этом уроке мы рассмотрим использование SMTP-сервера через плагин WordPress, а затем (для более смелых из вас) мы рассмотрим использование API SDK.
Быстрая настройка учетной записи SES
Прежде чем мы что-нибудь сделаем, нам понадобится учетная запись на SES. Я покажу вам, как подготовить свою учетную запись и отправить электронные письма с помощью консоли.
Подпишитесь на AWS
Прежде чем вы сможете использовать SES, вам необходимо зарегистрироваться в учетной записи Amazon Web Services - даже для бесплатного плана требуется кредитная карта. Чтобы зарегистрироваться, вам нужно перейти на http://aws.amazon.com/ses, следовать инструкциям на экране и выполнить несколько шагов подтверждения личности.

После регистрации у вас будет доступ ко всем услугам Amazon.
Проверьте свой адрес электронной почты
Независимо от того, используете ли вы службу в песочнице или в производстве, вам необходимо подтвердить свой адрес «From». Дополнительную информацию о проверке адресов электронной почты вы можете найти в справочной документации.

Запрос на доступ
Получив электронное письмо, вы можете запросить production доступ. Это позволит вам отправлять электронные письма на непроверенные адреса электронной почты. Количество писем, которые вы можете отправлять в день, будет увеличено.

Примечание. Разумно будет поиграть в режиме песочницы, прежде чем отправлять настоящие электронные письма.
Использование плагина WordPress
Хотя Amazon в настоящее время не имеет официального плагина, есть, кроме того, сторонние пакеты, которые могут выполнять эту работу. В этом примере мы будем использовать плагин под названием Amazon SES DKIM Mailer. Это великолепный плагин, совместимый с различными почтовыми службами, включая Amazon SES. Это означает, что если вы решили не придерживаться SES, вам не нужно менять свой сайт, просто детали подключения.
Этот плагин также поддерживает поддержку DomainKeys Identified Mail (DKIM). DKIM - Репутация; подписывая свои электронные письма, вы можете предотвратить попадание ваших писем в папку со спамом.
Установка
Взято из документации плагина на WordPress:
- Деактивируйте любые существующие плагины почтовых сообщений, чтобы избежать конфликтов.
- Разархивируйте zip-файл плагина внутри каталога /wp-content/plugins/ (или установите через встроенный установщик плагинов WordPress).
- Активируйте плагин через меню администратора Plugins в WordPress.
- Нажмите ссылку «Settings» рядом со ссылкой «Deactivate» (все еще на странице «Plugins») или нажмите ссылку Settings > Mail Settings, чтобы перейти на страницу настроек администратора плагина. Настройте параметры для вашей ситуации.

Как мы обсуждали ранее, для использования Amazon SES в реальной среде, вам необходимо подать заявку на Production Access. Без этого вы не сможете отправлять электронные письма на адреса, которые вы не контролируете.
DKIM
Чтобы воспользоваться DKIM, вам нужно создать открытый и закрытый ключ и загрузить свой закрытый ключ на свой сервер (мы рекомендуем называть его «.htkeyprivate» и поместить его в корневой каталог сайта и устанаить разрешения на 400 или 440).
Для пользователей Windows есть много генераторов онлайн-ключей, которые помогут сделать это. На сервере linux или Mac вы можете создавать свои собственные ключи DKIM с паролем «change-me», используя следующую команду терминала:
openssl genrsa -des3 -passout pass:change-me -out .htkeyprivate 1024 && openssl rsa -in .htkeyprivate -passin pass:change-me -pubout -out .htkeypublic
Для DKIM установите записи DNS TXT в что-то вроде:
HOST: your-selector._domainkey.example.com. TXT VALUE: v=DKIM1; k=rsa; g=*; s=email; h=sha1; t=s; p=your-public-key;
Используйте встроенные тесты, чтобы проверить, что ваш блог может правильно отправлять (подписанные DKIM) электронные письма.
Конфигурация
Чтобы убедиться, что плагин настроен на работу с AWS SES, необходимо настроить несколько параметров (см. скриншот выше).
- Отметьте Send e-mail via Amazon SES?
- Добавьте свой ключ доступа AWS
- Добавьте свой секретный ключ AWS
- Убедитесь, что адрес «From» - это тот, который вы подтвердили ранее.
Теперь вы можете использовать Send a Test Message. Как только вы успешно получили электронное письмо, вы полностью готовы его использовать.
Учебник AWS SDK PHP
Для более продвинутых пользователей в этом разделе я расскажу вам, как отправить электронное письмо с помощью SDK. Это будет использование на PHP, однако SDK есть и для других языков.
Сначала вам нужно будет установить SDK. Для PHP есть несколько способов сделать это; Composer, Phar, Zip и PEAR. Для этого урока мы собираемся использовать Composer, который вам нужно будет установить в первую очередь. После установки Composer вы должны иметь доступ к нему из интерфейса командной строки (CLI).
Создайте файл в корне вашего проекта под названием «composer.json», здесь вы разместите свою конфигурацию. Затем добавьте:
{ "require": { "aws/aws-sdk-php": "2.*" } }
Если вы использовали «composer.phar», вы можете выполнить php composer.phar install
или composer install
. В своем проекте вы можете добавить require '/path/to/sdk/vendor/autoload.php';
.
Теперь, когда вы это сделали, у вас есть доступ ко всем API-интерфейсам продуктов, которые предоставляет AWS. Это означает, что теперь вы можете отправлять электронные письма. Так что вам нужно?
Вот пример:
use Aws\Ses\SesClient; require 'vendor/autoload.php'; $client = SesClient::factory(array( 'key' => 'AWS_KEY', 'secret' => 'AWS_SECRET_KEY', 'region' => 'us-east-1' )); $emailSentId = $client->sendEmail(array( // Source is required 'Source' => 'from@email.com', // Destination is required 'Destination' => array( 'ToAddresses' => array('to@email.com') ), // Message is required 'Message' => array( // Subject is required 'Subject' => array( // Data is required 'Data' => 'SES Testing', 'Charset' => 'UTF-8', ), // Body is required 'Body' => array( 'Text' => array( // Data is required 'Data' => 'My plain text email', 'Charset' => 'UTF-8', ), 'Html' => array( // Data is required 'Data' => '<b>My HTML Email</b>', 'Charset' => 'UTF-8', ), ), ), 'ReplyToAddresses' => array( 'replyTo@email.com' ), 'ReturnPath' => 'bounce@email.com' ));
Давайте проверим его. Сначала мы добавили использование пространства имен, чтобы код выглядел более чистым. Затем мы добавили файл Composer'а autoload.php.
Чтобы иметь возможность отправлять файл, мы должны создать клиента. Это делается с использованием клиентской фабрики SES. Он может иметь много разных настроек, но минимальный минимум, который нам нужен, - это ключ, секрет и регион. Вы можете найти ключ и секрет в IAM Management Console. Регион - это регион, который вы использовали для SES.
С этим у вас теперь есть настройка клиента и он готов к работе. Теперь вы можете использовать клиент для вызова sendEmail
. Существуют так же и другие методы, которые вы можете вызвать, и вы можете найти дополнительную информацию о них в справочной документации.
Метод sendEmail
принимает единственный параметр, который является массивом. Этот массив требует определенных данных внутри него; например, source является обязательным и должен быть адресом, который вы подтвердили в своей учетной записи, чтобы разрешить отправку писем.
После того, как вы поместили электронные письма, которые хотите использовать, и добавили содержимое своего электронного письма, вы можете запустить скрипт, который отправит ваше первое электронное письмо!
Вывод
Какой бы вариант реализации вы ни выбрали, я надеюсь, что этот урок вызвал ваш интерес и побудил вас взглянуть на Amazon SES! Если вы столкнетесь с любыми проблемами при использовании SES, не стесняйтесь просить совета в комментариях.
Дополнительные ресурсы
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post