Недавно компания ((http://mandrill.com/ Mandrill)) объявила, что закроет свой отдельный email-сервис и предоставит его только платным пользователям ((http://mailchimp.com/ MailChimp)). Это хорошо для них, но многие из нас использовали его для небольших "одноразовых" приложений и не собирались платить, чтобы отправлять до 100 писем в месяц. На рынке есть другие email-провайдеры, такие как ((http://www.mailgun.com/ Mailgun)) и ((http://sendgrid.com/ Sendgrid)), а также ((https://aws.amazon.com/ses SES от Amazon)), ((https://www.campaignmonitor.com/features/transactional-email/ CampaignMonitor)), и более дорогой и надёжный ((https://postmarkapp.com/ Postmark)). Но в тот самый момент, когда Mandrill объявили об изменении цен, откуда ни возьмись появился новый email-сервис - ((https://www.sparkpost.com/ SparkPost)). Они утверждают, что существуют долгие годы и захватили львиную долю интернета, но это не совсем правда. Скорее так - это //новый// сервис, построенный на основе //старой// и мощной инфраструктуры под называнием "Momentum" от ((https://www.messagesystems.com/ MessageSystems)). А Momentum определённо надёжен: {{Image /packages/proger/habravel/uploads/390-sparkpost-powers-the-web.png, width=100%}} (более 25% всех email отправляются через ПО Message Systems нашими клиентами, среди которых...) Давайте разберёмся, как зарегистрироваться и перевести ((https://giscus.co/ Giscus)) (моё приложения для оповещения о комментариях к вашим "гистам") с Mandrill на SparkPost. .(alert) Большая часть описанных в статье вещей не представляет сложности. Я описываю их для того, чтобы вы поняли каков SparkPost в целом и смогли сравнить его с другими сервисами. Я //вовсе не// думаю, что вы не сможете разобраться с регистрацией сами. :) == Регистрация в SparkPost == Сначала ((https://app.sparkpost.com/sign-up зарегистрируемся)): {{Image /packages/proger/habravel/uploads/390-sparkpost-sign-up.png, width=100%}} 100 000 бесплатных сообщений email в месяц пожизненно? Да, пожалуйста. {{Image /packages/proger/habravel/uploads/390-sparkpost-welcome.png, width=100%}} Теперь я введу свой домен. К сожалению, у меня нет доступа к какому-либо из этих email-адресов, поэтому давайте посмотрим, что ещё мы можем сделать. {{Image /packages/proger/habravel/uploads/390-sparkpost-smtp-rest.png, width=100%}} Я выберу REST. Технически мы могли бы использовать любой, но я предпочитаю по-возможности использовать API. Таким образом я получу ключ API, скопирую его, и перейду к панели управления. .(alert) Если вы торопитесь, или используете Laravel до версии 5.2, то просто выберите SMTP. Вы можете скопировать учётные данные, вставить их в свой файл %%(t).env%%, настроить конфигурацию приложение на использование SMTP, и всё готово. {{Image /packages/proger/habravel/uploads/390-sparkpost-dashboard.png, width=100%}} Ну разве не красота! Пока я не ввёл свой email-адрес, дневной лимит был 500, а теперь он стал 10 000. Что дальше? Подтверждение домена для рассылки. Давайте сделаем это. {{Image /packages/proger/habravel/uploads/390-sparkpost-verify-domain.png, width=100%}} Как и в других email-сервисах, мне надо ввести записи DKIM и SPF для подтверждения владения доменом. С другими DNS-провайдерами может быть по другому, но с DNSimple это проще простого. Как только я ввёл записи DKIM и SPF, я сразу был отмечен как "готов к рассылке". == Настройка SparkPost в Laravel == Итак, наш аккаунт SparkPost создан и запущен. Теперь давайте подключим к нему Giscus. Как я уже говорил, самый быстрый вариант - SMTP. Но я хочу попробовать полную интеграцию с API, поэтому я обновлю Giscus до 5.2 с помощью ((https://laravelshift.com/ Laravel Shift)), и таким образом получу доступ к драйверу SparkPost. Убедитесь, что у вас Laravel 5.2.29 или выше. У меня был старый, поэтому я обновился, и теперь мне надо добавить массив %%(t)sparkpost%% в мой файл %%(t)config/services.php%%: %% 'sparkpost' => [ 'secret' => env('SPARKPOST_SECRET'), ], %% Теперь я возьму свой ключ API, который я скопировал раньше, зайду в файл %%(t).env%%, и вставлю этот ключ как значение %%(t)SPARKPOST_SECRET%%: %%(t) SPARKPOST_SECRET=1509812piu4nlkjadhfo98qwrw %% И наконец, я обновлю %%(t).env%%, чтобы указать, что я буду использовать драйвер %%(t)sparkpost%%: %%(t) MAIL_DRIVER=sparkpost %% Вот и всё! Теперь почта идёт через мой новый драйвер SparkPost. == Панель управления == Одна из главных причин написания этой статьи - желание показать вам SparkPost, поэтому приведу несколько скриншотов панели управления: === Аккаунты пользователей === {{Image /packages/proger/habravel/uploads/390-sparkpost-user-accounts.png, width=100%}} === Webhook-и === {{Image /packages/proger/habravel/uploads/390-sparkpost-webhooks.png, width=100%}} === Отчёты === {{Image /packages/proger/habravel/uploads/390-sparkpost-reports.png, width=100%}} {{Image /packages/proger/habravel/uploads/390-sparkpost-events.png, width=100%}} == Разное == SparkPost предлагает списки и шаблоны, если вы захотите использовать их API напрямую. Взгляните на пакет ((https://packagist.org/packages/sparkpost/php-sparkpost PHP-SparkPost)) в Packagist. === Важное предостережение === Я заметил, что в других сервисах я часто делал одну и ту же вещь (точно не помню в каких, но как минимум в Mailgun) - проверял содержимое отправленного email. Я часто делаю это при отладке и когда помогаю людям разобраться с проблемами спама. Я пока не выяснил, как это делается в SparkPost, и боюсь, если это окажется невозможным. Я ((https://twitter.com/stauffermatt/status/725018453103403009 спросил SparkPost в твиттере)), посмотрим, что они ответят. Если у них нет этой возможности, то это будет для меня достаточной причиной для перехода на Mailgun. Надеюсь, что я ошибаюсь, и эта функция у них просто где-то запрятана! == Заключение == Вот и всё. Зарегистрироваться и подтвердить аккаунт SparkPost очень просто. Это проверенная платформа. У них щедрый бесплатный тариф. А панель управления проста в использовании, хотя возможно в ней нет функции проверки содержимого отдельных сообщений. Поделитесь своим опытом использования SparkPost. Напишите мне в ((http://twitter.com/stauffermatt твиттер)).