Извличане на съдържание на имейл съобщение в C#

Показване на имейл информация

Този MailMessage представлява имейл съобщение и позволява на разработчиците да достъпват свойства на имейл съобщението. Информацията от заглавието (обсъдена в Извличане на заглавия на имейл) могат да се извличат и манипулират по различни начини. Тази статия обяснява как да покажете избрана информация от имейл хедъра и тялото на екрана. За да покажете имейл информация на екрана, следвайте тези стъпки:

  • Създайте инстанция на MailMessage клас.
  • Заредете имейл съобщение в MailMessage екземпляр.
  • Показване на съдържанието на имейла на екрана.

Следният фрагмент от код показва как да покажете информация за имейл на екрана.


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

Извличане на имейл хедъри

Заглавието на имейл представлява набор от полета, дефинирани от Интернет и RFC стандарти, включени в интернет имейл съобщения. Заглавието на имейл може да се зададе с помощта на MailMessage клас. Общите типове на заглавки са дефинирани в HeaderType клас. Това е затворен клас, работещ като обикновено изброяване. За извличане на хедъри от имейл, следвайте тези стъпки:

  1. Създайте инстанция на MailMessage клас.
  2. Заредете имейл съобщение в екземпляра на MailMessage клас.
  3. След като имейл съобщението бъде заредено, ще получим неговото сурово съдържание.

Този MailMessage class самият съдържа свойства като From, To, Cc, Subject и др. Тези свойства могат да се извлекат от заглавията.

Следният кодов фрагмент показва как да извлечете имейл заглавки.

Получаване на декодирани стойности на заглавието

Следният фрагмент от код показва как да получите декодирани стойности от заглавията.

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

Извличане на имейл тяло

Получаване на plain text тяло

Този Тяло свойството връща plain text представяне на тялото на съобщението.

string plainTextBody = mailMessage.Body;

Забележка: Ако частта text/plain MIME е присъстваща в съобщението, свойството връща текстовите данни. В противен случай, връща отделен текстов съдържание от HtmlBody свойство без HTML маркиране.

Получаване на HTML тяло като plain text

Този MailMessage класът предоставя възможност за извличане на HTML тялото на съобщението като plain text. The MailMessage класът предоставя GetHtmlBodyText метод, който връща HTML тялото в plain text. Този метод парсира HtmlBody свойството и връща отделно plain text съдържание, игнорирайки HTML маркирането. The GetHtmlBodyText методът приема булев параметър, който указва дали тялото трябва да съдържа URL адреси или не. Предаване на параметъра като true указва, че HTML тялото трябва да съдържа URL адреси.

Следният кодов отрязък демонстрира използването на GetHtmlBodyText метод за извличане на HTML тялото на имейла като plain 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);

Достъп до X.500 Exchange адрес

Този MailAddress клас има X500Address свойство, създадено за изложение на Exchange X.500 форматирани адреси, ако са налични в съобщение. Предоставя достъп само за четене до низовия X.500 (Exchange) адрес за MailAddress екземпляри и връща X.500 адреса, ако е включен в метаданните на съобщението, в противен случай връща null или празен. Не се изисква парсиране – свойството връща суровия X.500 низ.

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