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. Легкий, надежный и с отличной документацией.
Также в библиотеке
NHibernate для C# (.NET): полное руководство с примерами
PDF генерация в C# (.NET): лучшие библиотеки и примеры кода
Отправка SMS на Swift (iOS/macOS): API библиотеки MessageUI
Отправка email на Java: полное руководство по JavaMail и Jakarta Mail