nodemailer

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

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

Начать курс

Библиотека nodemailer для отправки email на TypeScript

nodemailer — это мощная и популярная библиотека для Node.js, написанная на TypeScript, которая позволяет легко отправлять электронные письма из серверных приложений. Она поддерживает все современные протоколы (SMTP, SES, Sendmail) и форматы писем (HTML, текст, вложения).

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

В веб-разработке часто требуется отправлять уведомления, подтверждения регистрации, сброс пароля или маркетинговые рассылки. nodemailer решает эту задачу, предоставляя простой и гибкий API для работы с почтовыми серверами. Благодаря TypeScript-типизации, код становится более надёжным и предсказуемым.

Установка

Установите пакет через npm или yarn:

npm install nodemailer
npm install -D @types/nodemailer

Для TypeScript обязательно установите пакет с типами.

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

  • Поддержка SMTP — работа с любым SMTP-сервером (Gmail, Yandex, Mailgun, SendGrid).
  • HTML и текстовые письма — можно отправлять как простой текст, так и форматированные HTML-сообщения.
  • Вложения — поддержка файлов, изображений и inline-вложений.
  • Потоки — возможность отправлять большие файлы через стримы.
  • Безопасность — поддержка TLS/SSL, OAuth2.
  • Пул соединений — оптимизация для массовой рассылки.

Пример кода на TypeScript

Простой пример отправки письма через Gmail SMTP:

import nodemailer from 'nodemailer';

async function sendEmail() {
  const transporter = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 587,
    secure: false, // true для 465
    auth: {
      user: 'your-email@gmail.com',
      pass: 'your-password',
    },
  });

  const info = await transporter.sendMail({
    from: '"Sender Name" <your-email@gmail.com>',
    to: 'recipient@example.com',
    subject: 'Привет из TypeScript!',
    text: 'Это текст письма.',
    html: '<b>Это HTML-письмо</b>',
  });

  console.log('Письмо отправлено:', info.messageId);
}

sendEmail().catch(console.error);

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

Библиотека идеально подходит для:

  • Бэкенд-приложений на Node.js/Express/NestJS.
  • Автоматических уведомлений (регистрация, заказы, ошибки).
  • Подтверждения email-адресов.
  • Рассылки транзакционных писем.
  • Интеграции с любыми SMTP-провайдерами.

Если вам нужно отправлять письма с вложениями, HTML-шаблонами или через внешние сервисы (SendGrid, Mailgun), nodemailer — это стандарт де-факто в экосистеме Node.js.

Важно: Для продакшена используйте переменные окружения для хранения паролей и настройки OAuth2, чтобы не раскрывать учётные данные в коде.

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