E-Mail-Versand mit JavaScript (Node.js): nodemailer, sendgrid, mailgun
Der E-Mail-Versand ist eine der Schlüsselfunktionen moderner Webanwendungen: Benutzerregistrierung, Passwortzurücksetzung, Benachrichtigungen und Marketingkampagnen. Im Node.js-Ökosystem gibt es mehrere bewährte Lösungen, mit denen Sie E-Mail-Funktionalität in wenigen Minuten integrieren können. In diesem Artikel werden wir drei beliebte Tools im Detail besprechen: nodemailer, sendgrid und mailgun. Sie erfahren, wie Sie SMTP konfigurieren, E-Mails mit Anhängen und HTML-Vorlagen versenden und welche Metriken Sie verfolgen sollten.
1. Nodemailer – universeller SMTP-Client
Nodemailer ist die beliebteste Bibliothek für den E-Mail-Versand in Node.js. Sie unterstützt SMTP, SES, Sendmail und viele Transporte. Hauptvorteile:
- Einfache Einrichtung über ein SMTP-Konto (Gmail, Yandex, Mail.ru).
- Unterstützung für Anhänge, Inline-Bilder, HTML-Vorlagen.
- Arbeit mit Warteschlangen und Verbindungspools.
- Asynchroner Versand mit
async/await.
Installation und grundlegender Versand
npm install nodemailerconst nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, // true für Port 465 auth: { user: 'your-email@gmail.com', pass: 'your-password' // oder App-Passwort }});
const mailOptions = { from: '"Absender" <your-email@gmail.com>', to: 'recipient@example.com', subject: 'Hallo von Node.js!', text: 'Dies ist eine Test-E-Mail.', html: '<h1>Hallo!</h1><p>Dies ist die HTML-Version.</p>'};
const sendMail = async () => { const info = await transporter.sendMail(mailOptions); console.log('E-Mail gesendet:', info.messageId);};
sendMail().catch(console.error);Versand mit Anhängen
const mailOptions = { // ...Grundfelder attachments: [ { filename: 'document.pdf', path: '/path/to/document.pdf' }, { filename: 'image.png', content: fs.createReadStream('/path/to/image.png') } ]};Wichtig: Verwenden Sie für Gmail ein App-Passwort oder OAuth2.
2. SendGrid – Cloud-Dienst für Transaktions-E-Mails
SendGrid (Teil von Twilio) bietet eine leistungsstarke API für den E-Mail-Versand mit hoher Zustellbarkeit. Geeignet für Startups und große Projekte. Hauptfunktionen:
- API mit Zugriffsschlüsseln (ohne SMTP).
- Dynamische Vorlagen (Handlebars).
- Analysen: Öffnungen, Klicks, Abmeldungen.
- Kostenloser Tarif bis zu 100 E-Mails/Tag.
Installation und Versand
npm install @sendgrid/mailconst sgMail = require('@sendgrid/mail');sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = { to: 'recipient@example.com', from: 'sender@example.com', subject: 'Transaktions-E-Mail', text: 'E-Mail-Text', html: '<strong>HTML-Inhalt</strong>', attachments: [ { content: 'base64encodedcontent', filename: 'invoice.pdf', type: 'application/pdf', disposition: 'attachment' } ]};
sgMail.send(msg) .then(() => console.log('E-Mail gesendet')) .catch(console.error);Verwendung dynamischer Vorlagen
const msg = { to: 'user@example.com', from: 'noreply@mysite.com', templateId: 'd-xxxxxxxxxxxxxxxx', dynamicTemplateData: { username: 'Ivan', orderLink: 'https://mysite.com/order/123' }};3. Mailgun – für hohe
Auch in der Bibliothek
JMH Java: Vollständiges Tutorial mit Beispielen und Tipps
gRPC für C# (.NET): Bibliotheken, Einrichtung und Codebeispiele
Redis-Client für Kotlin: Lettuce und Kreds – Vergleich und Beispiele
Testen in Kotlin: Frameworks und Werkzeuge für qualitativ hochwertigen Code