Nodemailer-Bibliothek: E-Mails mit JavaScript (Node.js) versenden
Nodemailer ist das beliebteste Modul zum Versenden von E-Mails aus Node.js-Anwendungen. Es bietet eine einfache, aber leistungsstarke API für die Arbeit mit verschiedenen E-Mail-Diensten (SMTP, Gmail, Outlook, SendGrid, Amazon SES usw.). Die Bibliothek unterstützt HTML-Vorlagen, Anhänge, Datenströme sowie Verschlüsselung (SSL/TLS).
Wofür wird Nodemailer benötigt?
In der modernen Webentwicklung ist das Versenden von E-Mails eine grundlegende Funktion: Registrierungs-E-Mails, Passwort-Zurücksetzen, Benachrichtigungen, Newsletter. Nodemailer löst die folgenden Aufgaben:
- Universelle Arbeit mit jedem SMTP-Server.
- Unterstützung für HTML- und Textnachrichten.
- Anhänge (Bilder, PDFs, Archive).
- Streaming großer Datenmengen.
- Integration mit beliebten Diensten (Gmail, Yandex, Mail.ru).
Installation
Installieren Sie das Modul über npm:
npm install nodemailerFür TypeScript zusätzlich:
npm install @types/nodemailerHauptfunktionen
- createTransport() — Erstellen eines Transports zur Verbindung mit dem E-Mail-Server.
- sendMail() — Versenden einer E-Mail mit Einstellungen (Von, An, Betreff, Inhalt, Anhänge).
- verify() — Überprüfung der Verbindung zum Server.
- use() — Einbinden von Plugins (z. B. für Templating).
Beispielcode in Node.js
const nodemailer = require('nodemailer');
// Transport konfigurieren (Beispiel für Gmail mit App-Passwort)const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' // Kein normales Passwort, sondern ein App-Passwort }});
// Funktion zum Senden einer E-Mailasync function sendEmail() { try { const info = await transporter.sendMail({ from: '"Your Name" <your-email@gmail.com>', to: 'recipient@example.com', subject: 'Hallo von Node.js!', html: '<h1>Test-E-Mail</h1><p>Gesendet mit Nodemailer.</p>' }); console.log('E-Mail gesendet: %s', info.messageId); } catch (error) { console.error('Fehler beim Senden:', error); }}
sendEmail();Wann sollte Nodemailer verwendet werden?
- Registrierung und Authentifizierung — Versenden von E-Mails zur Bestätigung der E-Mail-Adresse.
- Benachrichtigungen — Mitteilungen über Benutzeraktionen (Bestellung, Kommentar).
- Newsletter — Massenversand (für große Mengen besser SendGrid/Mailgun verwenden).
- Debugging — Versenden von E-Mails in der lokalen Umgebung (über Ethereal oder Mailtrap).
Wichtig: Verwenden Sie für die Produktion echte SMTP-Server (SendGrid, Amazon SES, Mailgun) oder konfigurieren Sie Ihren eigenen E-Mail-Server. Gmail hat Limits (500 E-Mails/Tag) und erfordert ein App-Passwort.
Nodemailer ist der De-facto-Standard für den E-Mail-Versand in Node.js. Es ist einfach, zuverlässig und hat eine große Community.
Auch in der Bibliothek
WebSocket in C++: Bibliotheken und praktische Anwendung
protobuf C++: Komplette Anleitung mit Code-Beispielen
ORM für Rust: Vergleich und Beispiele mit Diesel, SeaORM und SQLx
OAuth-Client für Swift (iOS/macOS): Bibliothek OAuthSwift