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 nodemailerPour 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.
Aussi dans la bibliothèque
Media3 / ExoPlayer pour Kotlin : guide complet avec exemples
Event Bus et le pattern Observer en Swift : implémentation et exemples
Intégration des métriques Prometheus dans les applications Java : bibliothèque simpleclient
Génération Swagger/OpenAPI pour Rust : bibliothèque Utoipa