© saicle/Shutterstock.com
E-Mail-Versand mit Node.js

Node.js-Module: Nodemailer


Zu den Standardaufgaben in der Webentwicklung zählt der Versand von E-Mails zur Benachrichtigung von Benutzern. Was beispielsweise bei PHP zum Standardrepertoire gehört, sucht man im Kern von Node.js vergeblich. Sie müssen jedoch nicht lange nach einer Lösung für dieses Problem suchen: Mit dem npm-Paket Nodemailer können Sie in wenigen Schritten die Funktionalität zum E-Mail-Versand in Ihre Applikation integrieren.

Wie die meisten Pakete für Node.js ist auch Nodemailer ein Open-Source-Projekt, das auf GitHub verwaltet wird und der MIT-Lizenz unterliegt. Die Installation erfolgt über npm auf der Kommandozeile mit dem Befehl npm install --save nodemailer. Das so hinzugefügte Paket kann dann über das Node.js-Modulsystem mit require('nodemailer') eingebunden und verwendet werden. Nodemailer ist allerdings kein vollwertiger Mailserver, der in Node.js geschrieben ist, sondern nur ein recht vielseitiger Mailclient. Sie benötigen also trotzdem noch einen Mailserver zum Versand Ihrer E-Mails. Anders ist es jedoch auch bei anderen Sprachen nicht.

Der Versand

Zunächst müssen Sie mithilfe des Nodemailer-Pakets einen Transporter generieren, über den Sie dann Ihre ­E-Mails versenden können. Zu diesem Zweck rufen Sie die createTransport-Methode auf. Sie akzeptiert ein Konfigurationsobjekt und ein Objekt, das den Versand mit weiteren Optionen konfiguriert. In einfachen Fällen reicht der Verbindungs-URL zu einem SMTP-Server als Konfigurationsobjekt aus. Lassen Sie das zweite Argument weg, werden die Standardwerte von Nodemailer verwendet.

Mit dem entstandenen Transporter können Sie nun mit der sendMail-Methode Ihre E-Mails versenden. Hierzu benötigen Sie wiederum ein Konfigurationsobjekt, über das Sie Absender, Empfänger, Betreff und die Nachricht selbst angeben. Das zweite Argument ist eine Callback-Funktion, die ausgeführt wird, nachdem die Nachricht versendet wurde. Wie üblich in Node.js, ist das erste Argument dieser Callback-Funktion ein Fehlerobjekt, das im Erfolgsfall den Wert null hat. Das zweite Argument ist ein Objekt, das weitere Informationen über den Versand, wie beispielsweise die MessageId beinhaltet (Listing 1).

Listing 1

var nodemailer = require('nodemailer'); var connection = 'smtps://user%40gmail.com:pass@smtp.gmail.com'; var transporter = nodemailer.createTransport(connection); var mailOptions = { from: '"Klaus" <klaus@test.de>', to: 'peter@test.de', subject: 'Mr. Watson -- come here', text: 'I need to see you' }; transporter.sendMail(mailOptions, fu...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang