Видобути вміст електронного листа у C#

Відобразити інформацію про лист

The MailMessage представляє повідомлення електронної пошти та дозволяє розробникам отримувати доступ до його властивостей. Інформація заголовка (обговорюється в Витягування заголовків електронної пошти) можна витягнути та маніпулювати різними способами. У цій статті пояснюється, як відобразити обрану інформацію заголовків листа та тіло листа на екрані. Щоб відобразити інформацію про лист на екрані, виконайте наступні кроки:

  • Створіть екземпляр MailMessage клас.
  • Завантажте електронний лист у the 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);

Видобути заголовки листа

Заголовок електронної пошти представляє набір полів заголовка, визначений стандартами Internet та RFC, що включені у повідомлення електронної пошти. Заголовок електронної пошти можна вказати за допомогою MailMessage клас. Спільні типи заголовків визначені у HeaderType клас. Це запечатаний клас, що працює як звичайне перерахування. Щоб видобути заголовки з листа, виконайте наступні кроки:

  1. Створіть екземпляр MailMessage клас.
  2. Завантажте електронний лист у екземпляр the MailMessage клас.
  3. Після завантаження електронного листа ми отримуємо його необроблений вміст.

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

Видобути тіло листа

Отримати просте текстове тіло

The Тіло властивість повертає просте текстове представлення тіла повідомлення.

string plainTextBody = mailMessage.Body;

Примітка: Якщо в повідомленні присутня MIME‑частина text/plain, властивість повертає її текстові дані. Інакше вона повертає розділений текстовий вміст з HtmlBody властивість без HTML‑розмітки.

Отримати HTML‑тіло у вигляді простого тексту

The MailMessage клас надає можливість видобути HTML‑тіло повідомлення у простий текст. The MailMessage клас забезпечує GetHtmlBodyText метод, який повертає HTML‑тіло у простому тексті. Цей метод розбирає HtmlBody властивість, яка повертає розділений простий текстовий вміст, ігноруючи HTML‑розмітку. The GetHtmlBodyText метод приймає булевий параметр, який вказує, чи повинно тіло містити URL‑и. Передача параметра true означає, що HTML‑тіло повинно містити URL‑и.

Нижче наведений фрагмент коду демонструє використання GetHtmlBodyText метод для видобутку HTML‑тіла електронного листа у вигляді простого тексту.

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

The MailAddress клас має X500Address властивість, створена для надання доступу до форматованих адрес Exchange X.500, якщо вони присутні у повідомленні. Забезпечує лише читання рядка адреси X.500 (Exchange) для MailAddress екземпляри та повертає адресу X.500, якщо вона включена у метадані повідомлення, інакше повертає null або порожню строку. Парсинг не потрібен — властивість повертає сирий рядок X.500.

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