Отправка почты из Meteor

В любом web приложении рано или поздно встает вопрос отправки почты. Отправить письмо можно разными способами: настроить smtp, использовать один из доступных smtp серверов, ну или воспользоваться сторонним сервисом, предоставляющим возможность отправки почты. Недавно я начал делать свой небольшой проект на Meteor и у меня появилась задача отправлять пользователям email оповещения.

Я просмотрел все доступные варианты, взвесил и понял, что самым быстрым вариантом является использовать сервис под названием Mailgun. Mailgun позволяет каждый месяц отправлять 10000 email сообщений бесплатно, этого должно хватить практически любому проекту на начальном этапе. К тому же, сервис ведет статистику доставленных\не доставленных сообщений и позволяет проверять email пользователя на существование. Кроме этого, в админке есть еще множество полезных функций, рассказывать обо всем не стану, если интересно — проверьте сами. К тому же, все опубликованные проекты на ***.meteor.com по умолчанию использую Mailgun.

Отправка почты из Meteor приложения с помощью Mailgun:

Если решились пойти моим путем, то смело переходите на сервис по ссылке и выше и заводите аккаунт. Так вы получите все необходимые данные для отправки почты. Интерфейс показался мне интуитивно понятным, думаю, что любой разберется без труда. Следующим шагом устанавливаем пакет Email. Итак, мы поставили нужный пакет и завели аккаунт в Mailgun, теперь приступаем к делу.  Для начала создадим в папке сервер новый файл, назовем его mail.js, содержание следующее:

Нужно немного пояснить про переменную окружения process.Env.MAIL_URL. Это переменная окружения Meteor и пакет email при отправке почты учтёт её и использует. Как вы уже догадались судя из строки smtp://ТВОЙ_ЛОГИН:ТВОЙ_ПАРОЛЬ@smtp.mailgun.org:25, почту мы отправляем с помощью smtp Mailgun. Теперь о параметрах — заменяем логин и пароль своими, их можно посмотреть в своем аккаунте.

  • ТВОЙ_ЛОГИН = Default SMTP Login (из аккаунта)
  • ТВОЙ_ПАРОЛЬ = Default Password (из аккаунта)

Про Meteor.methods({}), если кто то не знает — советую погуглить, полезная штука. И да, весь серверный код закончился, приступаем к клиентскому. А на клиенте всё еще проще! Создадим новый файлик в папке client, назовем его ya_na_cliente.js (например):

Это весь клиентский код. Объект params и html просто параметры, которые в данной реализации принимает серверный метод sendEmail.

И это в принципе всё! Вот так просто можно отправлять письма со своего сайта на Meteor и дать ему быстрый старт.

Возможно, кому-то могут пригодиться html шаблоны для писем,о которых я писал ранее.

 

Также можно почитать:

  • Евгений Щемелинин

    Добрый день!
    Я хотел узнать, была ли у вас ошибка «Internal server error [500]» при отправки сообщения? Если да, то как вы её решили.

    • У меня такой ошибки небыло. Проверьте урлы, скорее всего там что то не так.