Wyodrębnij zawartość wiadomości e‑mail w C#

Wyświetl informacje o e‑mail

Ten MailMessage reprezentuje wiadomość e‑mail i umożliwia programistom dostęp do właściwości wiadomości e‑mail. Informacje nagłówka (omówione w Wyodrębnianie nagłówków e‑mail) może być wyodrębnione i manipulowane na różne sposoby. Ten artykuł wyjaśnia, jak wyświetlić wybrane informacje o nagłówkach e‑mail i ciało e‑mail na ekranie. Aby wyświetlić informacje o e‑mail na ekranie, wykonaj następujące kroki:

  • Utwórz instancję MailMessage klasa.
  • Wczytaj wiadomość e‑mail do MailMessage instancję.
  • Wyświetl zawartość e‑maila na ekranie.

Poniższy fragment kodu pokazuje, jak wyświetlić informacje o e‑mailu na ekranie.


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

Wyodrębnij nagłówki e‑mail

Nagłówek e‑mail reprezentuje zestaw pól nagłówka określony przez Internet i RFC, włączony w wiadomości e‑mail. Nagłówek e‑mail może być określony przy użyciu MailMessage klasa. Powszechne typy nagłówków są zdefiniowane w HeaderType klasa. Jest to sealed class działająca jak zwykła enumeracja. Aby wyodrębnić nagłówki z e‑mail, wykonaj następujące kroki:

  1. Utwórz instancję MailMessage klasa.
  2. Wczytaj wiadomość e‑mail w instancji MailMessage klasa.
  3. Po wczytaniu wiadomości e‑mail uzyskujemy jej surową zawartość.

Ten MailMessage klasa zawiera właściwości takie jak From, To, Cc, Subject itp. Właściwości te mogą być wyodrębniane z nagłówków.

Poniższy fragment kodu pokazuje, jak wyodrębnić nagłówki e‑mail.

Pobierz zdekodowane wartości nagłówków

Poniższy fragment kodu pokazuje, jak uzyskać zdekodowane wartości nagłówków.

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

Wyodrębnij ciało e‑mail

Uzyskaj ciało w zwykłym tekście

Ten Treść właściwość zwraca reprezentację w zwykłym tekście ciała wiadomości.

string plainTextBody = mailMessage.Body;

Uwaga: jeśli w wiadomości jest część MIME text/plain, właściwość zwraca jej dane tekstowe. W przeciwnym razie zwraca oddzielną treść tekstową z HtmlBody właściwość bez znaczników HTML.

Uzyskaj ciało HTML jako zwykły tekst

Ten MailMessage klasa zapewnia możliwość wyodrębnienia ciała HTML wiadomości jako zwykłego tekstu. The MailMessage klasa zapewnia GetHtmlBodyText metoda, która zwraca ciało HTML w zwykłym tekście. Metoda ta parsuje HtmlBody właściwość i zwraca oddzielną treść w zwykłym tekście, ignorując znaczniki HTML. The GetHtmlBodyText metoda przyjmuje parametr typu bool, który wskazuje, czy ciało powinno zawierać adresy URL. Przekazanie parametru jako true oznacza, że ciało HTML powinno zawierać adresy URL.

Poniższy fragment kodu demonstruje użycie GetHtmlBodyText metoda do wyodrębnienia ciała HTML e‑mail jako zwykły tekst.

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

Dostęp do adresu X.500 Exchange

Ten MailAddress klasy ma X500Address właściwość stworzona do udostępniania adresów Exchange X.500, jeśli występują w wiadomości. Zapewnia tylko‑do‑odczytu dostęp do ciągu adresu X.500 (Exchange) dla MailAddress instancje i zwraca adres X.500, jeśli jest zawarty w metadanych wiadomości, w przeciwnym razie zwraca null lub pusty ciąg. Nie wymaga parsowania — właściwość zwraca surowy ciąg X.500.

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