Nodemailer

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Nodemailer : envoi d'email en JavaScript (Node.js)

Nodemailer est le module le plus populaire pour envoyer des e-mails depuis des applications Node.js. Il fournit une API simple et flexible pour travailler avec différents services de messagerie (SMTP, Gmail, Outlook, SendGrid et autres). La bibliothèque prend en charge les modèles HTML, les pièces jointes, les flux, ainsi que l'authentification sécurisée via OAuth2.

Pourquoi utiliser Nodemailer ?

  • Envoi d'e-mails transactionnels (confirmation d'inscription, réinitialisation de mot de passe).
  • Envoi de notifications et de campagnes marketing.
  • Intégration avec des formulaires de contact sur un site web.
  • Envoi automatique de rapports et de journaux.

Installation

Installez le module via npm :

npm install nodemailer

Fonctionnalités principales

  • Transport — configuration d'un serveur SMTP ou utilisation de transports intégrés (Gmail, Mailgun, SendGrid).
  • Formatage de l'e-mail — prise en charge du HTML, du texte, des pièces jointes (fichiers, images, PDF).
  • Flux — possibilité d'envoyer des fichiers volumineux sans les charger en mémoire.
  • OAuth2 — authentification sécurisée pour Gmail et d'autres fournisseurs.
  • Pool de connexions — optimisation des performances pour les envois en masse.

Exemple de code en JavaScript (Node.js)

const nodemailer = require('nodemailer');

// Configuration du transport (utilisation de Gmail)
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-password' // ou utilisez un App Password
}
});

// Paramètres de l'e-mail
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'Bonjour de Nodemailer !',
html: '<h1>Ceci est un e-mail de test</h1><p>Envoyé via Node.js.</p>',
attachments: [{
filename: 'document.pdf',
path: './files/document.pdf'
}]
};

// Envoi
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log('Erreur :', error);
}
console.log('E-mail envoyé :', info.response);
});

Quand utiliser Nodemailer ?

La bibliothèque convient à tout projet Node.js nécessitant l'envoi d'e-mails : des petits blogs aux systèmes d'entreprise. Nodemailer s'intègre facilement avec les frameworks (Express, Koa) et les services cloud. Si vous devez envoyer des e-mails avec des pièces jointes, du formatage HTML ou via OAuth2, c'est le meilleur choix.

Remarque : pour la production, il est recommandé d'utiliser des services spécialisés (SendGrid, Amazon SES) ou des relais SMTP afin d'éviter les blocages. Nodemailer prend en charge tous les fournisseurs populaires.

Recommendations