Может войдёшь?
Черновики Написать статью Профиль

Использование SparkPost для email-операций c Laravel

перевод

Недавно компания Mandrill объявила, что закроет свой отдельный email-сервис и предоставит его только платным пользователям MailChimp. Это хорошо для них, но многие из нас использовали его для небольших «одноразовых» приложений и не собирались платить, чтобы отправлять до 100 писем в месяц.

На рынке есть другие email-провайдеры, такие как Mailgun и Sendgrid, а также SES от Amazon, CampaignMonitor, и более дорогой и надёжный Postmark.

Но в тот самый момент, когда Mandrill объявили об изменении цен, откуда ни возьмись появился новый email-сервис — SparkPost. Они утверждают, что существуют долгие годы и захватили львиную долю интернета, но это не совсем правда. Скорее так — это новый сервис, построенный на основе старой и мощной инфраструктуры под называнием «Momentum» от MessageSystems. А Momentum определённо надёжен:

/packages/proger/habravel/uploads/390-sparkpost-powers-the-web.png

(более 25% всех email отправляются через ПО Message Systems нашими клиентами, среди которых...)

Давайте разберёмся, как зарегистрироваться и перевести Giscus (моё приложения для оповещения о комментариях к вашим «гистам») с Mandrill на SparkPost.

Большая часть описанных в статье вещей не представляет сложности. Я описываю их для того, чтобы вы поняли каков SparkPost в целом и смогли сравнить его с другими сервисами. Я вовсе не думаю, что вы не сможете разобраться с регистрацией сами. :)

Регистрация в SparkPost

Сначала зарегистрируемся:

/packages/proger/habravel/uploads/390-sparkpost-sign-up.png

100 000 бесплатных сообщений email в месяц пожизненно? Да, пожалуйста.

/packages/proger/habravel/uploads/390-sparkpost-welcome.png

Теперь я введу свой домен. К сожалению, у меня нет доступа к какому-либо из этих email-адресов, поэтому давайте посмотрим, что ещё мы можем сделать.

/packages/proger/habravel/uploads/390-sparkpost-smtp-rest.png

Я выберу REST. Технически мы могли бы использовать любой, но я предпочитаю по-возможности использовать API. Таким образом я получу ключ API, скопирую его, и перейду к панели управления.

Если вы торопитесь, или используете Laravel до версии 5.2, то просто выберите SMTP. Вы можете скопировать учётные данные, вставить их в свой файл .env, настроить конфигурацию приложение на использование SMTP, и всё готово.

/packages/proger/habravel/uploads/390-sparkpost-dashboard.png

Ну разве не красота! Пока я не ввёл свой email-адрес, дневной лимит был 500, а теперь он стал 10 000. Что дальше? Подтверждение домена для рассылки. Давайте сделаем это.

/packages/proger/habravel/uploads/390-sparkpost-verify-domain.png

Как и в других 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:

PHP
'sparkpost' => [
  
'secret' => env('SPARKPOST_SECRET'),
],

Теперь я возьму свой ключ API, который я скопировал раньше, зайду в файл .env, и вставлю этот ключ как значение SPARKPOST_SECRET:

SPARKPOST_SECRET=1509812piu4nlkjadhfo98qwrw

И наконец, я обновлю .env, чтобы указать, что я буду использовать драйвер sparkpost:

MAIL_DRIVER=sparkpost

Вот и всё! Теперь почта идёт через мой новый драйвер SparkPost.

Панель управления

Одна из главных причин написания этой статьи — желание показать вам SparkPost, поэтому приведу несколько скриншотов панели управления:

Аккаунты пользователей

/packages/proger/habravel/uploads/390-sparkpost-user-accounts.png

Webhook-и

/packages/proger/habravel/uploads/390-sparkpost-webhooks.png

Отчёты

/packages/proger/habravel/uploads/390-sparkpost-reports.png /packages/proger/habravel/uploads/390-sparkpost-events.png

Разное

SparkPost предлагает списки и шаблоны, если вы захотите использовать их API напрямую. Взгляните на пакет PHP-SparkPost в Packagist.

Важное предостережение

Я заметил, что в других сервисах я часто делал одну и ту же вещь (точно не помню в каких, но как минимум в Mailgun) — проверял содержимое отправленного email. Я часто делаю это при отладке и когда помогаю людям разобраться с проблемами спама.

Я пока не выяснил, как это делается в SparkPost, и боюсь, если это окажется невозможным. Я спросил SparkPost в твиттере, посмотрим, что они ответят. Если у них нет этой возможности, то это будет для меня достаточной причиной для перехода на Mailgun. Надеюсь, что я ошибаюсь, и эта функция у них просто где-то запрятана!

Заключение

Вот и всё. Зарегистрироваться и подтвердить аккаунт SparkPost очень просто. Это проверенная платформа. У них щедрый бесплатный тариф. А панель управления проста в использовании, хотя возможно в ней нет функции проверки содержимого отдельных сообщений.

Поделитесь своим опытом использования SparkPost. Напишите мне в твиттер.

Как вы считаете, полезен ли этот материал? Да Нет

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.