E-Mail-Versand mit JavaScript (Node.js): Vollständige Anleitung
Das Versenden von E-Mails ist eine der Kernfunktionen jeder modernen Webanwendung. Ob Benachrichtigungen, Registrierungsbestätigungen, Newsletter oder Passwort-Zurücksetzungen – die Fähigkeit, E-Mails programmatisch zu versenden, ist für jeden Entwickler unerlässlich. In diesem Material betrachten wir im Detail, wie der E-Mail-Versand mit JavaScript (Node.js) unter Verwendung beliebter Bibliotheken, SMTP-Konfigurationen und Best Practices organisiert wird.
Warum E-Mails aus Node.js versenden?
Node.js ist eine asynchrone JavaScript-Laufzeitumgebung, die sich hervorragend für die Verarbeitung einer großen Anzahl von Anfragen eignet. Das Versenden von E-Mails über Node.js ermöglicht:
- Automatisierung von Benutzerbenachrichtigungen;
- Integration von E-Mail-Newslettern mit dem Backend;
- Echtzeit-Fehlerbehandlung beim Versand;
- Verwendung einer einzigen Sprache (JavaScript) für das gesamte Projekt.
Wichtige Bibliotheken für den E-Mail-Versand in Node.js
Heutzutage gibt es mehrere bewährte Bibliotheken. Betrachten wir die beliebtesten:
1. Nodemailer
Nodemailer ist der De-facto-Standard für den E-Mail-Versand in Node.js. Die Bibliothek unterstützt SMTP, integrierte Vorlagen, Anhänge, HTML-E-Mails und OAuth2. Sie ist kostenlos und erfordert keine externen Dienste.
// Installation: npm install nodemailerconst nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({ host: 'smtp.example.com', port: 587, secure: false, // true für Port 465 auth: { user: 'user@example.com', pass: 'your-password' }});
async function sendMail() { const info = await transporter.sendMail({ from: '"Absender" <from@example.com>', to: 'to@example.com', subject: 'Hallo von Node.js', text: 'Dies ist eine Test-E-Mail.', html: '<b>Dies ist eine Test-E-Mail.</b>' }); console.log('E-Mail gesendet:', info.messageId);}sendMail().catch(console.error);2. SendGrid (über @sendgrid/mail)
SendGrid ist ein Cloud-Dienst für E-Mail-Newsletter von Twilio. Die Bibliothek @sendgrid/mail ermöglicht das einfache Versenden von E-Mails über die SendGrid-API. Geeignet für große Projekte.
// Installation: npm install @sendgrid/mailconst sgMail = require('@sendgrid/mail');sgMail.setApiKey('YOUR_SENDGRID_API_KEY');
const msg = { to: 'recipient@example.com', from: 'sender@example.com', subject: 'Versand über SendGrid', text: 'Hallo von SendGrid!', html: '<strong>Hallo von SendGrid!</strong>'};
sgMail.send(msg) .then(() => console.log('E-Mail gesendet')) .catch(error => console.error(error));3. Mailgun.js
Mailgun ist ein weiterer beliebter Dienst für Entwickler. Die Bibliothek mailgun.js bietet eine praktische Schnittstelle zum Versenden von E-Mails und zur Verwaltung von Newslettern.
// Installation: npm install mailgun.jsconst formData = require('form-data');const Mailgun = require('mailgun.js');const mailgun = new Mailgun(formData);
const mg = mailgun.client({ username: 'api', key: 'YOUR_MAILGUN_API_KEY'});
mg.messages.create('sandbox.mailgun.org', { from: 'Mailgun Sandbox <postmaster@sandbox.mailgun.org>', to: ['recipient@example.com'], subject: 'Hallo von Mailgun', text: 'Test-E-Mail über Mailgun.'}).then(msg => console.log(msg)).catch(err => console.error(err));SMTP-Konfiguration für den E-Mail-Versand
Wenn Sie Ihren eigenen Mail-Server oder ein Gmail/Yandex-Konto verwenden, müssen Sie SMTP konfigurieren. Hier ist ein Beispiel für Gmail:
const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your@gmail.com', pass: 'your-app-password' // Verwenden Sie ein App-Passwort }});