Библиотека 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, чтобы не раскрывать учётные данные в коде.
Также в библиотеке
Криптография в Java: шифрование и хеширование – практическое руководство
Работа с датами в JavaScript (Node.js): лучшие библиотеки
Сериализация объектов в Java: полное руководство с примерами
Конфигурация приложений TypeScript: библиотеки и инструменты