Extraire le contenu d'un message e‑mail en C#

Afficher les informations du e‑mail

Le MailMessage représente un message e‑mail et permet aux développeurs d’accéder aux propriétés du message e‑mail. Les informations d’en‑tête (discutées dans Extraction des en‑têtes d’e‑mail) peuvent être extraits et manipulés de différentes manières. Cet article explique comment afficher certaines informations d’en‑tête de l’e‑mail ainsi que le corps du message à l’écran. Pour afficher les informations du e‑mail à l’écran, suivez ces étapes :

  • Créez une instance de la MailMessage classe.
  • Charger un message e‑mail dans le MailMessage instance.
  • Affichez le contenu de l’e‑mail à l’écran.

L’extrait de code suivant montre comment afficher les informations du e‑mail à l’écran.


// Create MailMessage instance by loading an Eml file
var message = MailMessage.Load("test.eml", new EmlLoadOptions());

// Gets the sender info, recipient info, Subject, htmlbody and textbody
Console.Write("From:");
Console.WriteLine(message.From);
Console.Write("To:");
Console.WriteLine(message.To);
Console.Write("Subject:");
Console.WriteLine(message.Subject);
Console.WriteLine("HtmlBody:");
Console.WriteLine(message.HtmlBody);
Console.WriteLine("TextBody");
Console.WriteLine(message.Body);

Extraire les en‑têtes du e‑mail

L’en‑tête d’e‑mail représente un ensemble standard de champs d’en‑tête définis par Internet et les RFC, inclus dans les messages e‑mail. Un en‑tête d’e‑mail peut être spécifié en utilisant le MailMessage classe. Les types d’en‑tête courants sont définis dans le HeaderType classe. C’est une classe scellée qui fonctionne comme une énumération normale. Pour extraire les en‑têtes d’un e‑mail, suivez ces étapes :

  1. Créez une instance de la MailMessage classe.
  2. Charger un message e‑mail dans l’instance de MailMessage classe.
  3. Après le chargement d’un message e‑mail, nous récupérerons son contenu brut.

Le MailMessage la classe elle‑même contient des propriétés telles que From, To, Cc, Subject, etc. Ces propriétés peuvent être extraites des en‑têtes.

Le fragment de code suivant montre comment extraire les en‑têtes d’e‑mail.

Obtenir les valeurs d’en-tête décodées

L’extrait de code suivant montre comment obtenir les valeurs d’en‑tête décodées.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
MailMessage mailMessage = MailMessage.Load(dataDir + "emlWithHeaders.eml");
string decodedValue = mailMessage.Headers.GetDecodedValue("Thread-Topic");
Console.WriteLine(decodedValue);

Extraire le corps du e‑mail

Obtenir le corps en texte brut

Le Corps propriété qui renvoie une représentation texte brut du corps d’un message.

string plainTextBody = mailMessage.Body;

Remarque : Si la partie MIME text/plain est présente dans un message, la propriété renvoie son texte. Sinon, elle renvoie le contenu texte séparé provenant du HtmlBody propriété sans balisage HTML.

Obtenir le corps HTML en texte brut

Le MailMessage classe qui fournit la fonctionnalité d’extraction du corps HTML du message en texte brut. Le MailMessage la classe fournit un GetHtmlBodyText méthode qui renvoie le corps HTML en texte brut. Cette méthode analyse le HtmlBody propriété qui renvoie le contenu texte brut séparé en ignorant le balisage HTML. Le GetHtmlBodyText la méthode accepte un paramètre booléen indiquant si le corps doit contenir des URL ou non. Passer le paramètre à true indique que le corps HTML doit contenir des URL.

Le fragment de code suivant démontre l’utilisation de GetHtmlBodyText méthode pour extraire le corps HTML de l’e‑mail sous forme de texte brut.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Email();

MailMessage mail = MailMessage.Load(dataDir + "HtmlWithUrlSample.eml");

string body_with_url = mail.GetHtmlBodyText(true);// body will contain URL
string body_without_url = mail.GetHtmlBodyText(false);// body will not contain URL

Console.WriteLine("Body with URL: " + body_with_url);
Console.WriteLine("Body without URL: " + body_without_url);

Accéder à l’adresse X.500 Exchange

Le MailAddress classe possède le X500Address propriété conçue pour exposer les adresses formatées X.500 d’Exchange si elles sont présentes dans un message. Elle fournit un accès en lecture seule à la chaîne d’adresse X.500 (Exchange) pour MailAddress instances et renvoie l’adresse X.500 si elle est incluse dans les métadonnées du message, sinon renvoie null ou vide. Aucun traitement requis — la propriété renvoie la chaîne X.500 brute.

var mailMessage = MailMessage.Load(fileName);
string exaddr = mailMessage.From.X500Address;