Отправка писем из Node с помощью Nodemailer
Доставляйте приветственные письма, сбросы паролей и уведомления из вашего бэкенда на Node
- создать 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.