Настройка Mailgun


Коротко о том, как интегрировать проект с действительно мощным сервисом почтовых отправлений. Помимо простой отправки почты, сервис позволяет просматривать статистику, собирает логи и обеспечивает бесперебойную работу.

https://www.mailgun.com/

Статья написана для заказчиков, для которых мы разрабатываем проект и советуем зарегистрироваться сервисом MailGun. Мы часто слышим вопрос:

Зачем мне это надо? У нас и так работает нативная отправка сообщений на хостинге или по smtp!

Сейчас дадим развернутый ответ на этот вопрос. Все эти преимущества относятся не только к этому сервису, а почти ко всем mail relay сервисам. И в этой статье ограничимся рассмотрением интеграции только со стороны сервера для отправки уведомлений пользователю, ссобщений для подтвержения регистрации и т.д. Хотя возможностей у mailgun намного больше.

Преимущества

Начнем с недостатка, если его можно так назвать. И он только один - сервис платный, но 10 000 сообщений в месяц можете отправлять бесплатно, а если ваш сервис/сайт/продукт требует больше, чем 10 000 отправлений, то скорее всего вы можете себе это позволить, обеспечив качество почтовых отправлений.

API

Простое, удобное и понятное API. Помимо этого во многих фрэймворках и облачных серверах MailGun работает из коробки. Ссылка на примеры отправки для разных языков программирования. В статью скопирую пример на node.js

var mailgun = require("mailgun-js");
var api_key = 'YOUR_API_KEY';
var DOMAIN = 'YOUR_DOMAIN_NAME';
var mailgun = require('mailgun-js')({apiKey: api_key, domain: DOMAIN});

var data = {
  from: 'Excited User ',
  to: 'bar@example.com, YOU@YOUR_DOMAIN_NAME',
  subject: 'Hello',
  text: 'Testing some Mailgun awesomness!'
};

mailgun.messages().send(data, function (error, body) {
  console.log(body);
});

Вебхуки

Сервис позволяет отслеживать и анализировать отправляемы письма. Реагировать на разичные события о статусе письма можно программно через API. Можно проверить правильность введения электронной почты для увеличения конверсий.

Доверие крупных игроков

Многие крупные компании и сервисы с мировым именем используют MailGun, например, GitHub, heroku, lyft, shopify, slack, stripe. В большинстве проектах мы тоже используем этот сервис

Тех.поддержка

Качество технической поддержки на очень высоком уровне, в этом команда Denjoy убедилась на собственном опыте. Решение любого вопроса занимало не больше 10 минут. Тех.поддержка работает 24/7/365 дней в неделю.

Начало работы

Для того, чтобы начать работать с сервисом, достаточно зарегистрироваться. После регистрации вам будет выдан домен по умолчанию, он уже рабочий и вы можете сразу начать пользоваться сервисом.

Следующим шагом нам надо привязать свой домен. На странице списка доменов нажмите на кнопку "Добавить домен", откроется страница с полем ввода, после отправки формы вас перекинет на страницу с инструкцией для настройки DNS зоны.

Эти настройки необходимо ввести у вашего DNS провайдера, обычно это ваш регистратор домена. Мы в Denjoy Group пользуемся услугами Beget, поэтому в примере его и рассмотрим. Входим в аккаунт beget, и переходим в раздел DNS. Вводим 2 TXT записи, 2mx запис и CNAME.

Теперь необходимо подождать некоторое время, пока все зоны обновятся, этот процесс может занимать до двух дней. Когда домены обновятся, вы увидите зеленый лэйбл в списке доменов рядом с добавленным доменом.

Теперь давайте проверим, все ли правильно работает. Для этого надо запустить команду в терминале

    curl -s --user api:APIKEY'     https://api.mailgun.net/v3/YOUR.DOMAIN.NAME/messages     -F from='Excited User <excited@YOUR.DOMAIN.NAME>'     -F to='EMAIL@ADDRESS.RU'     -F subject='Hello' -F text="test"

Где APIKEY - API key, на странице настроек домена в MailGun, YOUR.DOMAIN.NAME - домен, подключенный к mailgun, EMAIL@ADDRESS.RU - адрес получателя. Если на адрес получателя письмо пришло, то поздравляем, вы все настроили правильно, если нет, то напишите нам, мы поможем разобраться