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-devFonctionnalité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/catchest obligatoire.
Nodemailer est la norme de facto pour l'envoi d'emails en TypeScript. Léger, fiable et avec une excellente documentation.
Aussi dans la bibliothèque
Travailler avec Excel en Go (Golang) : bibliothèques, exemples et outils
Planificateur de tâches en Go (Golang) : guide de mise en œuvre des tâches cron
Journalisation en Go (Golang) : meilleures bibliothèques et solutions 2024