Извлечение содержимого сообщений из электронной почты
Извлечение содержимого сообщений из электронной почты
Отображение информации о электронной почте на экране
MailMessage представляет собой электронное сообщение и позволяет разработчикам получать доступ к свойствам электронных сообщений. Заголовочная информация (обсуждаемая в Извлечение заголовков электронной почты) может быть извлечена и обработана различными способами. В этой статье объясняется, как отобразить выбранную информацию о заголовках электронной почты и теле сообщения на экране. Чтобы отобразить информацию о электронной почте на экране, выполните следующие шаги:
- Создайте экземпляр класса MailMessage.
- Загрузите электронное сообщение в экземпляр MailMessage.
- Отобразите содержимое электронной почты на экране.
Следующий фрагмент кода показывает, как отобразить информацию о электронной почте на экране.
// 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();
// Create MailMessage instance by loading an Eml file
MailMessage message = MailMessage.Load(dataDir + "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. Это закрытый класс, который работает как обычная перечисляемая переменная. Чтобы извлечь заголовки из электронной почты, выполните следующие шаги:
- Создайте экземпляр класса MailMessage.
- Загрузите электронное сообщение в экземпляр класса MailMessage.
- После загрузки электронного сообщения мы получим его сырой контент.
Сам класс MailMessage содержит такие свойства, как 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);
Получение текста тела сообщения
Свойство Body возвращает текстовое представление тела сообщения.
string plainTextBody = mailMessage.Body;
Примечание: Если в сообщении присутствует часть текста/plain MIME, свойство возвращает его текстовые данные. В противном случае оно возвращает отделенный текстовый контент из свойства HtmlBody без HTML-разметки.
Получение HTML-тела как простого текста
Класс MailMessage предоставляет возможность извлечь HTML-тело сообщения как простой текст. Класс MailMessage предоставляет метод GetHtmlBodyText, который возвращает HTML-тело в виде простого текста. Этот метод разбирает свойство HtmlBody и возвращает отделенный контент простого текста, игнорируя HTML-разметку. Метод 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);