Nodemailer: E-Mail-Versand mit JavaScript (Node.js)
Nodemailer ist das beliebteste Modul zum Versenden von E-Mails aus Node.js-Anwendungen. Es bietet eine einfache und flexible API für die Arbeit mit SMTP-Servern und unterstützt HTML-Vorlagen, Anhänge, Streaming sowie zahlreiche Transportwege (SMTP, Sendmail, Amazon SES und andere).
Wozu braucht man Nodemailer?
In Webanwendungen müssen oft E-Mails versendet werden: Registrierungsbestätigungen, Passwortzurücksetzungen, Benachrichtigungen, Newsletter. Nodemailer ermöglicht dies ohne überflüssige Abhängigkeiten, mit Unterstützung für OAuth2, SSL/TLS und Kodierungen. Es arbeitet asynchron und blockiert nicht die Event Loop.
Installation
Installieren Sie das Modul über npm:
npm install nodemailerFür die Arbeit mit Gmail oder Yandex.Mail kann eine zusätzliche Konfiguration erforderlich sein (App-Passwort oder OAuth2).
Hauptfunktionen
- Versand über SMTP, Sendmail, AWS SES, Mailgun, SendGrid
- Unterstützung für HTML- und Text-E-Mails
- Anhänge (Dateien, Bilder, Buffer, Stream)
- OAuth2-Authentifizierung (Gmail, Outlook)
- Verbindungspool für Massenversand
- Vorlagen (Handlebars, EJS-Integration)
Codebeispiel in JavaScript (Node.js)
Ein einfaches Beispiel zum Versenden einer E-Mail über den Gmail-SMTP:
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-app-password'
}
});
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'Hallo von Node.js',
html: '<h1>Test-E-Mail</h1><p>Gesendet mit Nodemailer</p>'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log('Fehler:', error);
} else {
console.log('E-Mail gesendet:', info.response);
}
});Wann verwenden
Nodemailer eignet sich für jedes Node.js-Projekt, bei dem E-Mails versendet werden müssen: von einfachen Skripten bis hin zu Unternehmensanwendungen. Es ist stabil, gut dokumentiert und wird von Tausenden von Entwicklern unterstützt. Wenn Sie einen Massenversand (Newsletter) benötigen, verwenden Sie besser spezialisierte Dienste (SendGrid, Mailchimp) über deren API, aber für Transaktions-E-Mails ist Nodemailer die ideale Wahl.
Auch in der Bibliothek
Elasticsearch-Client für C# (.NET): NEST und Elastic.Clients.Elasticsearch
Generierung von PDF-Berichten in Java: Bibliotheken und Beispiele
Multer für JavaScript (Node.js): Komplettguide mit Beispielen
QR-Code-Generator in Kotlin: Bibliothek ZXing und Implementierungstipps