Extrahovat obsah e‑mailové zprávy v C#

Zobrazit informace o e‑mailu

The MailMessage reprezentuje e‑mailovou zprávu a umožňuje vývojářům přistupovat k vlastnostem e‑mailové zprávy. Informace z hlavičky (diskutováno v Extrahování e‑mailových hlaviček) lze extrahovat a manipulovat s nimi různými způsoby. Tento článek vysvětluje, jak zobrazit vybrané informace z hlaviček e‑mailu a tělo e‑mailu na obrazovce. Pro zobrazení informací o e‑mailu na obrazovce postupujte následovně:

  • Vytvořte instanci MailMessage třída.
  • Načtěte e‑mailovou zprávu do MailMessage instance.
  • Zobrazte obsah e‑mailu na obrazovce.

Následující úryvek kódu ukazuje, jak zobrazit informace o e‑mailu na obrazovce.


// 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);

Extrahovat hlavičky e‑mailu

Hlavička e‑mailu představuje internetový a RFC definovaný standardní soubor hlavičkových polí zahrnutých v internetových e‑mailových zprávách. Hlavička e‑mailu může být specifikována pomocí MailMessage třída. Běžné typy hlaviček jsou definovány v HeaderType třída. Jedná se o uzavřenou třídu fungující jako běžná výčtová hodnota. Pro extrahování hlaviček z e‑mailu postupujte následovně:

  1. Vytvořte instanci MailMessage třída.
  2. Načtěte e‑mailovou zprávu v instanci MailMessage třída.
  3. Po načtení e‑mailové zprávy získáme její surový obsah.

The MailMessage třída sama obsahuje vlastnosti jako From, To, Cc, Subject a další. Tyto vlastnosti lze extrahovat z hlaviček.

Následující úryvek kódu ukazuje, jak extrahovat e‑mailové hlavičky.

Získat dekódované hodnoty hlavičky

Následující úryvek kódu ukazuje, jak získat dekódované hodnoty hlavičky.

// 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);

Extrahovat tělo e‑mailu

Získat prostý text těla

The Body vlastnost vrací prostý textový výstup těla zprávy.

string plainTextBody = mailMessage.Body;

Poznámka: Pokud je ve zprávě přítomen část text/plain MIME, vlastnost vrací její textová data. Jinak vrací oddělený textový obsah z HtmlBody vlastnost bez HTML značek.

Získat HTML tělo jako prostý text

The MailMessage třída poskytuje funkci k extrahování HTML těla zprávy jako prostý text. MailMessage třída poskytuje GetHtmlBodyText metoda, která vrací HTML tělo v prostém textu. Tato metoda parsuje HtmlBody vlastnost a vrací oddělený čistý textový obsah ignorující HTML značky.  GetHtmlBodyText metoda přijímá boolovský parametr, který určuje, zda má tělo obsahovat URL adresy nebo ne. Při předání parametru jako true se indikuje, že HTML tělo má obsahovat URL.

Následující úryvek kódu demonstruje použití GetHtmlBodyText metoda pro extrahování HTML těla e‑mailu jako prostý text.

// 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);

Přístup k X.500 Exchange adrese

The MailAddress Vytváření a ukládání Outlook zpráv X500Address vlastnost navržená k vystavení Exchange X.500 formátovaných adres, pokud jsou ve zprávě přítomny. Poskytuje pouze pro čtení přístup k řetězci X.500 (Exchange) adresy pro MailAddress instance a vrací X.500 adresu, pokud je obsažena v metadatech zprávy, jinak vrací null nebo prázdnou hodnotu. Žádné parsování není potřeba — vlastnost vrací surový řetězec X.500.

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