Mandrill всё? Как я искал замену и нашел 2 прекрасные альтернативы Мандрилу
TL; DR: Mandrill захотел поднять цены в 4 раза. Они нашли способ через интеграцию с MailChimp.
В феврале этого года, как гром среди ясного неба, пришло письмо от Mandrill о том, что с 27 го апреля он перестаёт существовать как независимый сервис и теперь чтобы им пользоваться нужно будет интегрировать свой Mandrill аккаунт в платный аккаунт MailChimp. Именно платный, пусть даже и самый дешевый. Вот как выглядит ценник MailChimp:
Напомню, что раньше Mandrill был бесплатным для небольших проектов до 12.000 писем в месяц (около 400 в день). Сейчас же как минимум $20 + сколько напосылаешь писем.
«Вот негодяи!» — подумал я про себя и отправился гуглить и тестить альтернативы, потому как мне как пользователю неприемлемо такое отношение со стороны сервиса.
Детально рассматриваемые в статье альтернативы:
- MailGun — популярная
- SparkPost — не такая популярная, но еще лучше
У обоих вариантов есть свои преимущества.
Альтернатива # 1: MailGun — The Email Service For Developers
- 10,000 бесплатных емайлов в месяц
- Следующие 500,000 — $0.00050 за штуку
- Следующие 1,000,000 — $0.00035
- Следующие 5,000,000 — $0.00015
- Все остальные будут по $0.00010
Прайсинг довольно простой и без подводных камней.
Теперь что касается процесса интеграции. Здесь и дальше в статье я буду смотреть на мир глазами PHP разработчика, да простят меня остальные сообщества :)
MailGun любят и часто интегрируют поддержку в фреймворки (например, в Laravel) за отличный API. Для того чтобы его попробовать достаточно зарегистрироваться и curl-ом обратиться к endpoint-y со своим API ключом:
curl -s --user 'api:key-3ax6xnjp29jd6fds4gc373sgvjxteol0' \
https://api.mailgun.net/v3/samples.mailgun.org/messages \
-F from='Excited User ' \
-F to='devs@mailgun.net' \
-F subject='Hello' \
-F text='Testing some Mailgun awesomeness!'
Для PHP на гитхабе лежит официальная библиотека mailgun-php.
Панель управления содержит удобный dashboard и логи всех писем:
Есть вебхуки для реагирования на различные события:
Для некоторых своих проектов я остановился именно на Майлгане. 10,000 бесплатных писем в месяц хватает за глаза. В случае с Laravel интеграция занимает полчаса, из которых 5 мин вы тратите на указание API ключа и 25 мин на тестирование:)
Альтернатива # 2: SparkPost — Better Email Delivery for Better Customer Engagement
100,000 бесплатных емайлов в месяц (это в 10 раз больше чем у MailGun).
По неизвестным мне причинам, этот сервис не такой популярный и узнал я о нем совершенно случайно — из комментов к какому-то посту.
Кроме 100 тысяч бесплатных писем у него есть еще одна киллер-фича — subaccounts, которую они запилили две недели зазад.
Subaccounts это когда вы каждому своему пользователю выделяете подаккаунт с независимой репутацией. Это даёт много преимуществ. Во-первых, вы можете посмотреть логи по каждому подаккаунту отдельно. Во-вторых, независимая репутация подаккаунтов позволяет применять те или иные меры для пользователей вашего проекта в зависимости от их «кармы» :)
Для моего проекта массовых email-открыток и приглашений Subaccounts API — жизненно необходимая функциональность для выявления и заблаговременного блокирования спамеров.
API у них такой же отличный как и у MailGun и использовать его можно как угодно, хоть из командной строки:
curl -XPOST \
https://api.sparkpost.com/api/v1/transmissions \
-H "Authorization: " \
-H "Content-Type: application/json" \
-d '{"content": {"from": "testing@sparkpostbox.com", "subject": "Oh hey", "text":"Testing SparkPost - the most awesomest email service in the world"}, "recipients": [{"address": "developers+curl@sparkpost.com"}]}'
Интеграция с PHP происходит с помощью официальной open source библиотеки php-sparkpost и не вызывает никаких затруднений:
use SparkPost\SparkPost;
use GuzzleHttp\Client;
use Ivory\HttpAdapter\Guzzle6HttpAdapter;
$httpAdapter = new Guzzle6HttpAdapter(new Client());
$sparky = new SparkPost($httpAdapter, ['key'=>'']);
$results = $sparky->transmission->send([
'from'=>'testing@sparkpostbox.com',
'html'=>'Testing SparkPost - the world\'s most awesomest email service!
',
'subject'=> 'Oh hey!',
'recipients'=>[
['address'=>['email'=>'developers+php@sparkpost.com']]
]
]);
Кроме того, слоган SparkPost и данные eDataSource говорят о хорошей доставляемости:
UPDATE: SparkPost официально недоступен из России и Украины. Проблема решается регистрацией через шлюз, например «из Германии» (thx Softer).
В конце отмечу, что мы рассматривали и другие сервисы такие как:
Эти сервисы по той или иной причине нам не подходили и я их не рассматриваю детально в статье, но может быть кто-то найдет то, что ему нужно как раз в одном из них.
До конца жизни старого доброго Мандрила осталось меньше месяца, надеюсь что этим постом я немного помог определиться с альтернативами для перехода.
Ну и опрос напоследок. Если вы не пользователь Mandrill, пожалуйста, нажмите «Воздержаться».
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.