Nodemailer: E-Mail-Versand mit TypeScript
Nodemailer ist das beliebteste Modul zum Versenden von E-Mails aus Node.js- und TypeScript-Anwendungen. Es ermöglicht die einfache Integration des E-Mail-Versands über SMTP und unterstützt HTML-Vorlagen, Anhänge, Streams und viele Transporte (Gmail, Yandex, SendGrid usw.). Die Bibliothek ist dank integrierter Typen vollständig mit TypeScript kompatibel.
Wozu braucht man Nodemailer?
In der modernen Webentwicklung wird der E-Mail-Versand benötigt für:
- Registrierungsbestätigung (Verifizierung)
- Passwort-Wiederherstellung
- Benachrichtigungen und Newsletter
- Systemalarme
Nodemailer vereinfacht diesen Prozess, indem es eine einheitliche API für alle E-Mail-Dienste bereitstellt.
Installation
npm install nodemailernpm install -D @types/nodemailerFür TypeScript müssen Sie unbedingt das Paket mit den Typen installieren.
Hauptfunktionen
- SMTP-Transport — Versand über jeden SMTP-Server (Gmail, Mail.ru, Yandex, AWS SES).
- HTML und Text — Unterstützung sowohl für Plain-Text- als auch für HTML-E-Mails.
- Anhänge — Dateien, Bilder, Buffer, Streams.
- Vorlagen — Integration mit Handlebars, Pug und anderen.
- Streams — Versand großer Dateien ohne Laden in den Arbeitsspeicher.
- Verbindungspool — Leistungssteigerung bei Massenaussendungen.
Codebeispiel in TypeScript
import nodemailer from 'nodemailer';
interface MailOptions { to: string; subject: string; text?: string; html?: string;}
async function sendEmail(options: MailOptions): Promise<void> { // Transport erstellen (Beispiel für Gmail) const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });
// E-Mail-Einstellungen const mailData = { from: 'your-email@gmail.com', to: options.to, subject: options.subject, text: options.text || '', html: options.html || undefined };
// Versand const info = await transporter.sendMail(mailData); console.log('E-Mail gesendet:', info.messageId);}
// VerwendungsendEmail({ to: 'user@example.com', subject: 'Hallo von TypeScript!', html: '<h1>Willkommen</h1><p>Dies ist eine Test-E-Mail.</p>'});Wann sollte man Nodemailer verwenden
Die Bibliothek eignet sich für:
- Alle Node.js/TypeScript-Projekte, die E-Mails versenden müssen.
- Prototypen und MVPs — schnelle Einrichtung über Gmail.
- Produktionssysteme — mit transaktionalen Diensten (SendGrid, Mailgun).
- Mikrodienste und serverless (Lambda, Cloud Functions).
Es wird nicht empfohlen, Nodemailer für Massen-Spam-Kampagnen zu verwenden — dafür gibt es spezialisierte ESP (Email Service Providers).
Fazit
Nodemailer ist eine ausgereifte, stabile und gut dokumentierte Bibliothek. Dank der TypeScript-Typen erhalten Sie Autovervollständigung und Fehlerprüfung zur Kompilierungszeit. Es ist die ideale Wahl für den E-Mail-Versand im JavaScript/TypeScript-Ökosystem.
```Auch in der Bibliothek
ORM für Java: Vergleich von Hibernate, MyBatis, JPA und Spring Data
Redis-Client für C# (.NET): StackExchange.Redis
Caching in Node.js: Redis, Memcached und integrierter Speicher
Nodemailer für JavaScript (Node.js): Komplettguide mit Beispielen