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

Envoi d'email en TypeScript : La bibliothèque nodemailer

Nodemailer est le module le plus populaire pour envoyer des emails depuis Node.js et TypeScript. Il permet d'envoyer des emails via SMTP, ainsi que via des services de transport intégrés (SendGrid, Mailgun et autres). La bibliothèque prend entièrement en charge TypeScript (y compris le typage) et fonctionne aussi bien avec les emails textuels qu'avec les emails HTML, les pièces jointes et le chiffrement.

Pourquoi utiliser nodemailer ?

  • Envoi d'emails transactionnels (confirmation d'inscription, réinitialisation de mot de passe).
  • Envoi de notifications (par exemple, après une commande sur un site).
  • Intégration avec des formulaires de contact.
  • Automatisation de rapports (exports de données quotidiens).

Installation

npm install nodemailernpm install @types/nodemailer --save-dev

Fonctionnalités principales

  • Transport SMTP — configuration via n'importe quel serveur SMTP (Gmail, Yandex, Mail.ru).
  • Prise en charge du HTML et du texte — possibilité d'envoyer du texte brut ainsi que de beaux modèles HTML.
  • Pièces jointes — fichiers, images, PDF.
  • Transmission en flux — envoi de fichiers volumineux sans les charger en mémoire.
  • Typage — prise en charge complète de TypeScript (interfaces pour les options).

Exemple de code en TypeScript

import nodemailer from 'nodemailer';

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

async function sendEmail(options: MailOptions): Promise<void> { const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });

const info = await transporter.sendMail(options); console.log('Email sent:', info.messageId);}

// UtilisationsendEmail({ from: 'noreply@example.com', to: 'user@example.com', subject: 'Hello from TypeScript', html: '<h1>Welcome!</h1><p>This is a test email.</p>'});

Quand utiliser nodemailer ?

La bibliothèque est idéale pour les applications serveur en Node.js/TypeScript, en particulier en combinaison avec Express, Next.js ou Nest.js. Si vous devez configurer rapidement l'envoi d'emails sans configurations complexes, nodemailer est le meilleur choix. Elle convient également pour les microservices et les tâches d'arrière-plan (par exemple, avec Bull ou Agenda).

Remarques importantes

  • Pour Gmail, utilisez un mot de passe d'application (pas le mot de passe principal).
  • Pour la production, utilisez des variables d'environnement (par exemple, process.env.SMTP_PASS).
  • N'oubliez pas la gestion des erreurs : try/catch est obligatoire.

Nodemailer est la norme de facto pour l'envoi d'emails en TypeScript. Léger, fiable et avec une excellente documentation.

Recommendations