MailKit pour C# (.NET) : guide complet avec exemples
1. Qu'est-ce que MailKit et pourquoi l'utiliser ?
MailKit est une bibliothèque open source puissante et multiplateforme pour la gestion des emails dans l'écosystème .NET. Elle offre un ensemble complet d'outils pour créer, envoyer, recevoir et traiter des messages électroniques. Contrairement à l'ancienne System.Net.Mail, MailKit propose une API moderne, un support complet du MIME (Multipurpose Internet Mail Extensions), la gestion du S/MIME et OpenPGP, ainsi que des opérations asynchrones, essentielles pour les applications à forte charge.
Pourquoi utiliser MailKit ? Si vous développez en C# et devez envoyer des emails avec pièces jointes, analyser les messages entrants, travailler avec différents protocoles de messagerie (SMTP, POP3, IMAP) ou gérer des formats complexes (HTML, pièces jointes, signatures), MailKit est l'outil indispensable. Utilisée en production par des milliers d'entreprises, y compris Microsoft (dans certains services internes), elle prend en charge .NET Framework, .NET Core, .NET 5+ et même Xamarin/MAUI.
Principaux avantages de MailKit par rapport aux alternatives : support complet des dernières normes email (RFC 2045-2049, RFC 2822, RFC 5322), prise en charge intégrée de SSL/TLS, gestion des proxys, traitement en flux des pièces jointes volumineuses et hautes performances grâce à System.IO.Pipelines et async/await.
2. Installation
MailKit s'installe via le gestionnaire de paquets NuGet. Exécutez l'une des commandes suivantes dans la console du gestionnaire de paquets (Package Manager Console) ou dans le terminal .NET CLI :
// Via .NET CLI
dotnet add package MailKit
// Via Package Manager Console
Install-Package MailKit
// Ou via NuGet Package Manager dans Visual Studio
// Recherchez "MailKit" et installez la dernière version stable
Après l'installation, une dépendance vers MimeKit (bibliothèque de base pour la gestion des messages MIME) sera automatiquement ajoutée comme dépendance transitive.
3. Démarrage rapide — exemple minimal fonctionnel
Voici un exemple minimal d'envoi d'un email texte simple via le serveur SMTP de Gmail. Attention : pour utiliser Gmail, vous devez utiliser un mot de passe d'application (App Password) ou OAuth 2.0.
using MailKit.Net.Smtp;
using MimeKit;
// Création du message
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Expéditeur", "sender@gmail.com"));
message.To.Add(new MailboxAddress("Destinataire", "recipient@example.com"));
message.Subject = "Email de test avec MailKit";
message.Body = new TextPart("plain") { Text = "Bonjour ! Ceci est un message de test." };
// Envoi via SMTP
using (var client = new SmtpClient())
{
client.Connect("smtp.gmail.com", 587, SecureSocketOptions.StartTls);
client.Authenticate("sender@gmail.com", "votre-mot-de-passe-application");
client.Send(message);
client.Disconnect(true);
}
Console.WriteLine("Email envoyé !");
4. Méthodes/fonctions/classes principales
4.1. SmtpClient.Connect()
Signature : Task ConnectAsync(string host, int port, SecureSocketOptions options, CancellationToken cancellationToken = default)
Fonction : Établit une connexion avec le serveur SMTP. Le paramètre SecureSocketOptions définit le type de chiffrement : None, Auto, SslOnConnect, StartTls.
using var client = new SmtpClient();
await client.ConnectAsync("smtp.mail.ru", 465, SecureSocketOptions.SslOnConnect);
4.2. SmtpClient.Authenticate()
Signature : Task AuthenticateAsync(string userName, string password, CancellationToken cancellationToken =
Aussi dans la bibliothèque
Drizzle ORM TypeScript : guide complet avec exemples
Playwright JavaScript (Node.js) : guide complet avec exemples
Travailler avec les archives ZIP en Java : guide complet sur java.util.zip
Traitement d'images en Kotlin : redimensionnement et recadrage avec la bibliothèque Kamel