Contents
Prérequis pour envoyer un email avec nodemailer sous NodeJS
Installer nodemailer à partir de npm : https://www.npmjs.com/package/nodemailer
Pour recevoir le mail en local : https://github.com/maildev/maildev (Outils pratique à installer en global)
Recevoir le mail en local avec maildev
Pour recevoir le mail avec maildev, il faut d’abord lancer maildev après l’avoir installé en global (npm i maildev -g), ensuite aller dans une invite de commande de taper maildev
Envoyer le mail avec nodemailer
Il vous faudra importer nodemailer avec la commande require.
Ensuite créer un transporter avec les infos de développement ou production (à vous de les définir) pour développements nous envoyons en local à maildev (Voir options transporter).
Ensuite nous définissons les options du mail à savoir, de qui vient le mail, à qui on l’envoi, le sujet, le format texte et HTML : Voir plus d’options
Lancez le script NodeJS et le mail partira (node index.js dans mon cas)
//Il faut importer nodemailer const nodemailer = require('nodemailer') //On se connecte au transporter avec différentes options en fonction de l'environnement let transporter = null if (process.env.NODE_ENV === 'prod') { transporter = nodemailer.createTransport({ host: 'your host', port: 'your port', secure: false, auth: { user: 'the user of smtp', password: 'the password', }, }) } else { transporter = nodemailer.createTransport({ host: 'localhost', port: 1025, secure: false, tls: { // do not fail on invalid certs rejectUnauthorized: false, }, }) } // Fonction asynchrone pour attendre le retour async function sendMail() { const mailOptions = { from: 'from@email.fr', to: 'to@email.fr', subject: 'Test email pour le tutoriel', text: "Voici le texte de l'email de test", //Le contenu de la version texte html: "<h1>HTML</h1><p>Voici le texte dans un paragraph pour l'email de test</p>", // Le contenu de la version HTML } await transporter.sendMail(mailOptions) } //On lance l'email sendMail()
Voir le mail avec maildev
Lorsque vous lancez maildev avec l’invite de commande vous voyez ce message qui vous dis vers quel port pointe le SMTP serveur et où visualiser les mails, allez donc sur localhost:1080 pour voir l’interface de maildev
MailDev webapp running at http://0.0.0.0:1080 MailDev SMTP Server running at 0.0.0.0:1025
Voici l’interface de maildev pour recevoir vos mails.
Le tutoriel est fini, merci pour votre lecture.