Nodemailer — отправка email на TypeScript

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

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

Начать курс

Что такое Nodemailer и зачем он нужен?

Nodemailer — это самый популярный модуль для отправки электронных писем в среде Node.js. Написанный на JavaScript, он идеально работает с TypeScript благодаря встроенным типам (DefinitelyTyped). Библиотека позволяет отправлять письма через SMTP, Sendmail, Amazon SES и другие транспорты. В TypeScript-проектах Nodemailer обеспечивает строгую типизацию всех опций, что снижает количество ошибок на этапе компиляции.

Установка

Для установки выполните команду:

npm install nodemailer @types/nodemailer

Пакет @types/nodemailer добавляет декларации типов, необходимые для TypeScript.

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

  • Отправка писем через SMTP — поддержка Gmail, Yandex, Mail.ru, SendGrid и любых других SMTP-серверов.
  • Вложения — возможность прикреплять файлы, изображения, PDF.
  • HTML-шаблоны — отправка писем с форматированным HTML-контентом.
  • Поддержка SSL/TLS — безопасная передача данных.
  • Пул соединений — оптимизация для массовой рассылки.

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

Ниже показан минимальный пример отправки письма через Gmail SMTP с использованием 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({
    service: 'gmail',
    auth: {
      user: 'your@gmail.com',
      pass: 'your-app-password',
    },
  });

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

// Использование
sendEmail({
  from: 'your@gmail.com',
  to: 'recipient@example.com',
  subject: 'Привет из TypeScript!',
  html: '<h1>Тестовое письмо</h1><p>Отправлено с помощью Nodemailer</p>',
});

Важно: Для Gmail необходимо использовать пароль приложения (App Password), а не обычный пароль.

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

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

  • Регистрационных писем (подтверждение email, восстановление пароля).
  • Уведомлений о заказах в интернет-магазинах.
  • Рассылки новостей и маркетинговых писем (с использованием очередей).
  • Автоматических отчётов из бэкенда (логи, ошибки, статистика).

Если вам нужна отправка email в TypeScript-проекте — Nodemailer остаётся стандартом де-факто благодаря гибкости, надёжности и огромному сообществу.

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