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 les serveurs SMTP, et prend en charge les modèles HTML, les pièces jointes, le streaming et de nombreux transports (SMTP, Sendmail, Amazon SES et autres).

Pourquoi utiliser Nodemailer ?

Dans les applications web, il est souvent nécessaire d'envoyer des e-mails : confirmations d'inscription, réinitialisation de mot de passe, notifications, newsletters. Nodemailer permet de le faire sans dépendances superflues, avec le support d'OAuth2, SSL/TLS et des encodages. Il fonctionne de manière asynchrone et ne bloque pas la boucle d'événements (Event Loop).

Installation

Installez le module via npm :

npm install nodemailer

Pour fonctionner avec Gmail ou Yandex Mail, une configuration supplémentaire peut être nécessaire (mot de passe d'application ou OAuth2).

Fonctionnalités principales

  • Envoi via SMTP, Sendmail, AWS SES, Mailgun, SendGrid
  • Prise en charge des e-mails HTML et texte
  • Pièces jointes (fichiers, images, Buffer, Stream)
  • Authentification OAuth2 (Gmail, Outlook)
  • Pool de connexions pour les envois en masse
  • Modélisation (intégration Handlebars, EJS)

Exemple de code en JavaScript (Node.js)

Exemple simple d'envoi d'e-mail via le SMTP de Gmail :

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-app-password'
}
});

const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'Bonjour depuis Node.js',
html: '<h1>E-mail de test</h1><p>Envoyé via Nodemailer</p>'
};

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

Quand l'utiliser

Nodemailer convient à tous les projets Node.js nécessitant l'envoi d'e-mails : des scripts simples aux applications d'entreprise. Il est stable, bien documenté et soutenu par des milliers de développeurs. Si vous avez besoin d'envois en masse (newsletter), il est préférable d'utiliser des services spécialisés (SendGrid, Mailchimp) via leur API, mais pour les e-mails transactionnels, Nodemailer est le choix idéal.

Recommendations