Envoi d'email en TypeScript : bibliothèques et exemples de code

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 : guide complet

TypeScript est un sur-ensemble strictement typé de JavaScript, activement utilisé dans les applications web modernes. L'envoi d'email est l'une des tâches clés pour le backend, les notifications et le marketing. Dans cet article, nous analyserons en détail plusieurs bibliothèques pour l'envoi d'email en TypeScript, y compris la configuration, l'envoi d'emails simples et HTML, ainsi que le travail avec les pièces jointes.



Pourquoi TypeScript pour l'envoi d'email ?

TypeScript ajoute le typage, ce qui réduit le nombre d'erreurs en phase de développement. Lors de l'envoi d'email, c'est particulièrement important : des types corrects pour l'hôte SMTP, le port, les identifiants et les options de l'email aident à éviter les erreurs d'exécution. De plus, TypeScript prend en charge les constructions modernes async/await, ce qui rend le code plus propre et plus compréhensible.



Bibliothèques principales pour l'envoi d'email en TypeScript

  • nodemailer — la bibliothèque la plus populaire pour Node.js, entièrement compatible avec TypeScript. Prend en charge SMTP, Sendmail, les pièces jointes, les modèles HTML.
  • @sendgrid/mail — le client officiel SendGrid pour Node.js avec des types TypeScript. Utilise l'API SendGrid, ne nécessite pas SMTP.
  • aws-sdk (SES) — Amazon Simple Email Service. Solution puissante pour les envois massifs, intégration avec AWS.
  • emailjs — bibliothèque légère avec prise en charge de TypeScript, mais moins populaire.


Installation et configuration de nodemailer avec TypeScript

Installez les paquets via npm :

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

Exemple de base d'envoi d'email via SMTP (Gmail, Yandex, Mail.ru, etc.) :

import nodemailer from 'nodemailer';

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

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

const mailOptions = { from: '"Votre nom" <your-email@gmail.com>', to: options.to, subject: options.subject, text: options.text, html: options.html, };

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

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

Important : Pour Gmail, activez "Accès aux applications moins sécurisées" ou utilisez un mot de passe d'application (App Password). Pour la production, il est préférable d'utiliser OAuth2.



Envoi d'email via SendGrid en TypeScript

SendGrid fournit une API prête à l'emploi, ne nécessitant pas SMTP. Installation :

npm install @sendgrid/mail

Exemple d'envoi :

import sgMail from '@sendgrid/mail';

sgMail.setApiKey('YOUR_SENDGRID_API_KEY');

interface SendGridMessage { to: string; from: string; subject: string; html: string;}

async function sendWithSendGrid(message: SendGridMessage): Promise<void> { try { await sgMail.send(message); console.log('Email envoyé via SendGrid'); } catch (error) { console.error('Erreur d\'envoi :', error); }}

sendWithSendGrid({ to: 'user@example.com', from: 'sender@yourdomain.com', subject: 'Test SendGrid + TypeScript', html: '<p>Ce message a été envoyé via l\'API SendGrid.</p>',});


Envoi d'email avec pièces jointes en TypeScript

nodemailer prend en charge les pièces jointes de tout type. Exemple avec un fichier PDF :

import nodemailer from 'nodemailer';import path from 'path';

async function sendWithAttachment()

Recommendations