Перейти к содержанию

Отправка писем из Node с помощью Nodemailer

Начало урока

Отправка писем из Node с помощью Nodemailer

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

Главная идея: почти каждому реальному приложению рано или поздно нужно отправлять транзакционные письма — сообщения, вызванные действием пользователя: приветствие при регистрации, ссылку для сброса пароля или чек о заказе. Nodemailer — де-факто стандартная библиотека Node для этого: единый, лёгкий модуль, который подключается к SMTP-серверу и отправляет полностью сформированные сообщения с HTML-телом, текстовым запасным вариантом и вложениями.
К концу вы сможете:
  • создать SMTP-транспорт и отправить первое сообщение с помощью sendMail();
  • собрать объект сообщения с полями to, from, subject и обоими телами — text и html;
  • прикреплять файлы и встраивать изображения через cid;
  • хранить учётные данные SMTP вне кода, используя переменные окружения;
  • тестировать отправку во время разработки, не заваливая реальные почтовые ящики.

1. Что такое «транзакционное письмо»

Бэкенд отправляет письма двух больших видов. Маркетинговые письма (рассылки, акции) идут сразу многим получателям и обычно обрабатываются отдельной платформой. Транзакционные письма устроены иначе: это одно сообщение, отправленное одному человеку из-за того, что он только что сделал. Пользователь зарегистрировался — вы шлёте приветствие. Пользователь нажал «забыли пароль» — вы шлёте ссылку для сброса. Заказ отправлен — вы шлёте подтверждение. Именно для этих сообщений идеально подходит Nodemailer.

Аналогия. Представьте ваше приложение как оживлённый офис. Транзакционное письмо — это секретарь, который, как только на стол ложится заполненная форма, тут же пишет аккуратный ответ и кладёт его в лоток исходящей почты. Nodemailer — этот секретарь: вы передаёте ему детали одного письма, а он оформляет конверт, надписывает адрес и передаёт его почтовой службе (SMTP-серверу) для доставки.

Сам Nodemailer не доставляет почту через интернет — это работа SMTP-сервера (Simple Mail Transfer Protocol). Задача Nodemailer — собрать корректное сообщение и «говорить» по SMTP с выбранным вами сервером, будь то Gmail, корпоративный почтовый сервер или провайдер вроде SendGrid, Mailgun или Amazon SES, доступный по SMTP.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя