E-Mail-Versand mit JavaScript (Node.js) — Bibliotheken und Codebeispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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    }});

Empfehlungen