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 TypeScript

Nodemailer est le module le plus populaire pour envoyer des e-mails depuis des applications Node.js et TypeScript. Il permet d'intégrer facilement l'envoi d'email via SMTP, et prend également en charge les modèles HTML, les pièces jointes, les flux et de nombreux transports (Gmail, Yandex, SendGrid, etc.). La bibliothèque est entièrement compatible avec TypeScript grâce à ses types intégrés.

Pourquoi utiliser Nodemailer ?

Dans le développement web moderne, l'envoi d'email est nécessaire pour :

  • La confirmation d'inscription (vérification)
  • La réinitialisation du mot de passe
  • Les notifications et les newsletters
  • Les alertes système

Nodemailer simplifie ce processus en fournissant une API unique pour tous les services de messagerie.

Installation

npm install nodemailernpm install -D @types/nodemailer

Pour TypeScript, installez impérativement le package contenant les types.

Fonctionnalités principales

  • Transport SMTP — envoi via n'importe quel serveur SMTP (Gmail, Mail.ru, Yandex, AWS SES).
  • HTML et texte — prise en charge des e-mails en texte brut et en HTML.
  • Pièces jointes — fichiers, images, Buffer, flux.
  • Modélisation — intégration avec handlebars, pug et autres.
  • Flux — envoi de fichiers volumineux sans les charger en mémoire.
  • Pool de connexions — amélioration des performances pour les envois en masse.

Exemple de code en TypeScript

import nodemailer from 'nodemailer';

interface MailOptions { to: string; subject: string; text?: string; html?: string;}

async function sendEmail(options: MailOptions): Promise<void> { // Création du transport (exemple pour Gmail) const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });

// Paramètres de l'email const mailData = { from: 'your-email@gmail.com', to: options.to, subject: options.subject, text: options.text || '', html: options.html || undefined };

// Envoi const info = await transporter.sendMail(mailData); console.log('Email envoyé :', info.messageId);}

// UtilisationsendEmail({ to: 'user@example.com', subject: 'Bonjour depuis TypeScript !', html: '<h1>Bienvenue</h1><p>Ceci est un email de test.</p>'});

Quand utiliser Nodemailer

La bibliothèque est adaptée pour :

  • Tout projet Node.js/TypeScript nécessitant l'envoi d'email.
  • Les prototypes et MVP — configuration rapide via Gmail.
  • Les systèmes de production — avec des services transactionnels (SendGrid, Mailgun).
  • Les microservices et le serverless (Lambda, Cloud Functions).

Il n'est pas recommandé d'utiliser Nodemailer pour les envois massifs de spam — des ESP (Email Service Providers) spécialisés existent pour cela.

Conclusion

Nodemailer est une bibliothèque mature, stable et bien documentée. Grâce aux types TypeScript, vous bénéficiez de l'autocomplétion et de la vérification des erreurs à la compilation. C'est le choix idéal pour l'envoi d'email dans l'écosystème JavaScript/TypeScript.

Recommendations