nodemailer

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

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

Начать курс

Email отправка на TypeScript: Библиотека nodemailer

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

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

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

Установка

npm install nodemailer
npm install @types/nodemailer --save-dev

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

  • SMTP-транспорт — настройка через любой SMTP-сервер (Gmail, Yandex, Mail.ru).
  • Поддержка HTML и текста — можно отправлять как plain text, так и красивые HTML-шаблоны.
  • Вложения — файлы, изображения, PDF.
  • Потоковая передача — отправка больших файлов без загрузки в память.
  • Типизация — полная поддержка TypeScript (интерфейсы для опций).

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

import nodemailer from 'nodemailer';

interface MailOptions {
  from: string;
  to: string;
  subject: string;
  text?: string;
  html?: string;
}

async function sendEmail(options: MailOptions): Promise<void> {
  const transporter = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 587,
    secure: false,
    auth: {
      user: 'your-email@gmail.com',
      pass: 'your-app-password'
    }
  });

  const info = await transporter.sendMail(options);
  console.log('Email sent:', info.messageId);
}

// Использование
sendEmail({
  from: 'noreply@example.com',
  to: 'user@example.com',
  subject: 'Hello from TypeScript',
  html: '<h1>Welcome!</h1><p>This is a test email.</p>'
});

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

Библиотека идеальна для серверных приложений на Node.js/TypeScript, особенно в связке с Express, Next.js или Nest.js. Если вам нужно быстро настроить отправку писем без сложных конфигураций — nodemailer лучший выбор. Также подходит для микросервисов и фоновых задач (например, с помощью Bull или Agenda).

Важные замечания

  • Для Gmail используйте пароль приложения (не основной пароль).
  • Для production используйте переменные окружения (например, process.env.SMTP_PASS).
  • Не забудьте про обработку ошибок: try/catch обязателен.

Nodemailer — это де-факто стандарт для отправки email в TypeScript. Легкий, надежный и с отличной документацией.

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