Nodemailer mit Gmail verwenden - Teil 02
Im ersten Teil ging es darum, die erforderlichen Token für eine XOAuth2 Authentifizierung für GMail zu generieren. In diesem Teil wird gezeigt, wie der Nodemailer installiert wird und dieser für die Nutzung von Gmail konfiguruiert wird.
Teil 01 - Gmail ClientID und Refresh Token erstellen
Nodemailer installieren
Installieren Sie zunächst die Pakete Nodemailer und xoauth2 mit folgenden Befehlen:
npm install nodemailer --save
npm install xoauth2 --save
Hinweis: Das Paket nodemailer-smtp-transport wird automatisch mit dem Paket Nodemailer installiert.
Anschließend können die erforderlichen Bibliotheken eingebunden werden und der Generator für XOAuth2 kann mit den Tokens aus dem ersten Teil konfiguriert werden:
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
var generator = require('xoauth2').createXOAuth2Generator({
user: "automailer@dotnetautor.de",
clientId: "01234567890123-abcdefghijk1234lmnopqrst6789ucwx.apps.googleusercontent.com",
clientSecret: "abcd1234edfghijkl6789",
refreshToken: "abcdefghijklmnop12345qrstuvwxyz12345abcdefghij12345"
});
Im nächsten Schritt wird zunächst ein Transportkanal erstellt, der für die Verwendung des zuvor bereit gestellten XOAuth2 Generators
konfiguriert wird.
api.route(‘/contact’).post(function(req, res) {
var mailOpts, smtpTrans;
// SMTP Transportkanal erstellen
smtpTrans = nodemailer.createTransport(smtpTransport({
service: ‘gmail’,
auth: {
xoauth2: generator
}
}));
//Mail Optionen
mailOpts = {
from: req.body.name +‘ <’+req.body.email+‘>’,
to: 'info@mydomain.de‘,
subject: req.body.subject || “Anfrage Webseite”,
text: req.body.message || “Ohne Nachricht”
};
smtpTrans.sendMail(mailOpts, function (error, response) {
//Email konnte nicht gesendet werden
if (error) {
res.json({error: error, res: response});
} else {
// Erfogreich gesendet !
res.json(true);
}
smtpTrans.close();
});
});
Anschließend läßt sich der nodejsmailer zusammen mit dem konfigurierten Account verwenden.