Nodemailer

Онлайн-тренажер Python для начинающих

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

Начать курс

Nodemailer: отправка email на JavaScript (Node.js)

Nodemailer — это самый популярный модуль для отправки электронных писем из приложений на Node.js. Он предоставляет простой и гибкий API для работы с различными почтовыми сервисами (SMTP, Gmail, Outlook, SendGrid и другими). Библиотека поддерживает HTML-шаблоны, вложения, потоки, а также безопасную аутентификацию через OAuth2.

Зачем нужен Nodemailer?

  • Отправка транзакционных писем (подтверждение регистрации, восстановление пароля).
  • Рассылка уведомлений и маркетинговых кампаний.
  • Интеграция с формами обратной связи на сайте.
  • Автоматическая отправка отчетов и логов.

Установка

Установите модуль через npm:

npm install nodemailer

Основные функции

  • Транспорт — настройка SMTP-сервера или использование встроенных транспортов (Gmail, Mailgun, SendGrid).
  • Форматирование письма — поддержка HTML, текста, вложений (файлы, изображения, PDF).
  • Потоки — возможность отправлять большие файлы без загрузки в память.
  • OAuth2 — безопасная аутентификация для Gmail и других провайдеров.
  • Пул соединений — оптимизация производительности при массовой рассылке.

Пример кода на JavaScript (Node.js)

const nodemailer = require('nodemailer');

// Настройка транспорта (используем Gmail)
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-password' // или используйте App Password
}
});

// Параметры письма
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'Привет от Nodemailer!',
html: '<h1>Это тестовое письмо</h1><p>Отправлено через Node.js.</p>',
attachments: [{
filename: 'document.pdf',
path: './files/document.pdf'
}]
};

// Отправка
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log('Ошибка:', error);
}
console.log('Письмо отправлено:', info.response);
});

Когда использовать Nodemailer?

Библиотека подходит для любых проектов на Node.js, где требуется отправка email: от небольших блогов до корпоративных систем. Nodemailer легко интегрируется с фреймворками (Express, Koa) и облачными сервисами. Если вам нужно отправлять письма с вложениями, HTML-версткой или через OAuth2 — это лучший выбор.

Обратите внимание: для продакшена рекомендуется использовать специализированные сервисы (SendGrid, Amazon SES) или SMTP-релеи, чтобы избежать блокировок. Nodemailer поддерживает все популярные провайдеры.

Рекомендаций