Что такое 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 остаётся стандартом де-факто благодаря гибкости, надёжности и огромному сообществу.
Также в библиотеке
Resilience4j для Java: полное руководство с примерами
Мониторинг приложений на Rust: библиотеки и инструменты для отслеживания производительности
GraphQL Java: мощный инструмент для создания современных API на Java
OAuth клиент для JavaScript (Node.js): обзор и примеры использования