Недавно компания Mandrill объявила, что закроет свой отдельный email-сервис и предоставит его только платным пользователям MailChimp. Это хорошо для них, но многие из нас использовали его для небольших «одноразовых» приложений и не собирались платить, чтобы отправлять до 100 писем в месяц.
На рынке есть другие email-провайдеры, такие как Mailgun и Sendgrid, а также SES от Amazon, CampaignMonitor, и более дорогой и надёжный Postmark.
Но в тот самый момент, когда Mandrill объявили об изменении цен, откуда ни возьмись появился новый email-сервис — SparkPost. Они утверждают, что существуют долгие годы и захватили львиную долю интернета, но это не совсем правда. Скорее так — это новый сервис, построенный на основе старой и мощной инфраструктуры под называнием «Momentum» от MessageSystems. А Momentum определённо надёжен:
(более 25% всех email отправляются через ПО Message Systems нашими клиентами, среди которых...)
Давайте разберёмся, как зарегистрироваться и перевести Giscus (моё приложения для оповещения о комментариях к вашим «гистам») с Mandrill на SparkPost.
Большая часть описанных в статье вещей не представляет сложности. Я описываю их для того, чтобы вы поняли каков SparkPost в целом и смогли сравнить его с другими сервисами. Я вовсе не думаю, что вы не сможете разобраться с регистрацией сами. :)
Регистрация в SparkPost
Сначала зарегистрируемся:
100 000 бесплатных сообщений email в месяц пожизненно? Да, пожалуйста.
Теперь я введу свой домен. К сожалению, у меня нет доступа к какому-либо из этих email-адресов, поэтому давайте посмотрим, что ещё мы можем сделать.
Я выберу REST. Технически мы могли бы использовать любой, но я предпочитаю по-возможности использовать API. Таким образом я получу ключ API, скопирую его, и перейду к панели управления.
Если вы торопитесь, или используете Laravel до версии 5.2, то просто выберите SMTP. Вы можете скопировать учётные данные, вставить их в свой файл .env, настроить конфигурацию приложение на использование SMTP, и всё готово.
Ну разве не красота! Пока я не ввёл свой email-адрес, дневной лимит был 500, а теперь он стал 10 000. Что дальше? Подтверждение домена для рассылки. Давайте сделаем это.
Как и в других email-сервисах, мне надо ввести записи DKIM и SPF для подтверждения владения доменом. С другими DNS-провайдерами может быть по другому, но с DNSimple это проще простого. Как только я ввёл записи DKIM и SPF, я сразу был отмечен как «готов к рассылке».
Настройка SparkPost в Laravel
Итак, наш аккаунт SparkPost создан и запущен. Теперь давайте подключим к нему Giscus.
Как я уже говорил, самый быстрый вариант — SMTP. Но я хочу попробовать полную интеграцию с API, поэтому я обновлю Giscus до 5.2 с помощью Laravel Shift, и таким образом получу доступ к драйверу SparkPost.
Убедитесь, что у вас Laravel 5.2.29 или выше. У меня был старый, поэтому я обновился, и теперь мне надо добавить массив sparkpost в мой файл config/services.php:
'sparkpost' => [
'secret' => env('SPARKPOST_SECRET'),
],
Теперь я возьму свой ключ API, который я скопировал раньше, зайду в файл .env, и вставлю этот ключ как значение SPARKPOST_SECRET:
SPARKPOST_SECRET=1509812piu4nlkjadhfo98qwrw
И наконец, я обновлю .env, чтобы указать, что я буду использовать драйвер sparkpost:
MAIL_DRIVER=sparkpost
Вот и всё! Теперь почта идёт через мой новый драйвер SparkPost.
Панель управления
Одна из главных причин написания этой статьи — желание показать вам SparkPost, поэтому приведу несколько скриншотов панели управления:
Аккаунты пользователей
Webhook-и
Отчёты
Разное
SparkPost предлагает списки и шаблоны, если вы захотите использовать их API напрямую. Взгляните на пакет PHP-SparkPost в Packagist.
Важное предостережение
Я заметил, что в других сервисах я часто делал одну и ту же вещь (точно не помню в каких, но как минимум в Mailgun) — проверял содержимое отправленного email. Я часто делаю это при отладке и когда помогаю людям разобраться с проблемами спама.
Я пока не выяснил, как это делается в SparkPost, и боюсь, если это окажется невозможным. Я спросил SparkPost в твиттере, посмотрим, что они ответят. Если у них нет этой возможности, то это будет для меня достаточной причиной для перехода на Mailgun. Надеюсь, что я ошибаюсь, и эта функция у них просто где-то запрятана!
Заключение
Вот и всё. Зарегистрироваться и подтвердить аккаунт SparkPost очень просто. Это проверенная платформа. У них щедрый бесплатный тариф. А панель управления проста в использовании, хотя возможно в ней нет функции проверки содержимого отдельных сообщений.
Поделитесь своим опытом использования SparkPost. Напишите мне в твиттер.