Библиотека Nodemailer: отправка email на JavaScript (Node.js)
Nodemailer — это самый популярный модуль для отправки электронных писем из приложений на Node.js. Он предоставляет простой, но мощный API для работы с различными почтовыми сервисами (SMTP, Gmail, Outlook, SendGrid, Amazon SES и др.). Библиотека поддерживает HTML-шаблоны, вложения, потоки данных, а также шифрование (SSL/TLS).
Зачем нужен Nodemailer?
В современной веб-разработке отправка email — базовая функциональность: регистрационные письма, сброс пароля, уведомления, рассылки. Nodemailer решает следующие задачи:
- Универсальная работа с любым SMTP-сервером.
- Поддержка HTML и текстовых сообщений.
- Вложенные файлы (изображения, PDF, архивы).
- Потоковая передача больших данных.
- Интеграция с популярными сервисами (Gmail, Yandex, Mail.ru).
Установка
Установите модуль через npm:
npm install nodemailerДля TypeScript дополнительно:
npm install @types/nodemailerОсновные функции
- createTransport() — создание транспорта для подключения к почтовому серверу.
- sendMail() — отправка письма с настройками (от, кому, тема, тело, вложения).
- verify() — проверка соединения с сервером.
- use() — подключение плагинов (например, для шаблонизации).
Пример кода на Node.js
const nodemailer = require('nodemailer');
// Настройка транспорта (пример для Gmail с App Password)
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-app-password' // Не обычный пароль, а пароль приложения
}
});
// Функция отправки письма
async function sendEmail() {
try {
const info = await transporter.sendMail({
from: '"Your Name" <your-email@gmail.com>',
to: 'recipient@example.com',
subject: 'Привет из Node.js!',
html: '<h1>Тестовое письмо</h1><p>Отправлено через Nodemailer.</p>'
});
console.log('Письмо отправлено: %s', info.messageId);
} catch (error) {
console.error('Ошибка отправки:', error);
}
}
sendEmail();Когда использовать Nodemailer?
- Регистрация и авторизация — отправка писем с подтверждением email.
- Уведомления — оповещения о действиях пользователя (заказ, комментарий).
- Рассылки — массовая отправка (но для больших объемов лучше использовать SendGrid/Mailgun).
- Отладка — отправка писем в локальной среде (через Ethereal или Mailtrap).
Важно: Для продакшена используйте реальные SMTP-серверы (SendGrid, Amazon SES, Mailgun) или настройте свой почтовый сервер. Gmail имеет лимиты (500 писем/день) и требует пароль приложения.
Nodemailer — стандарт де-факто для отправки email в Node.js. Он прост, надежен и имеет большое сообщество.
Также в библиотеке
Работа с Excel в TypeScript: библиотеки, примеры и инструменты
Миграции баз данных в Swift: инструменты и подходы для iOS/macOS
Elasticsearch .NET для C# (.NET): полное руководство с примерами
Работа с изображениями в Go: resize и crop с библиотекой imaging
Валидация данных в TypeScript: библиотеки Zod, Yup и io-ts