Электронная почта является основным источником общения через Интернет. Вы можете столкнуться с ситуациями, когда вы хотите, чтобы ваши приложения читали файлы EML и MSG и добавляли их содержимое в какой-либо файл или выполняли над ними какую-либо другую операцию. С этой целью эта статья научит вас читать сообщения электронной почты с помощью C++.
- C++ API для чтения сообщений электронной почты
- Чтение сообщений электронной почты с помощью C++
- Извлечение информации заголовка из сообщений электронной почты
- Декодировать значения заголовков сообщений электронной почты
- Получить бесплатную лицензию
C++ API для чтения сообщений электронной почты
Aspose.Email для C++ — это собственная библиотека C++ для создания, обработки и отправки электронных писем, не требующая установки Microsoft Outlook. API также поддерживает чтение файлов электронной почты EML и MSG. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.
PM> Install-Package Aspose.Email.Cpp
Чтение сообщений электронной почты с помощью C++
Ниже приведены шаги для чтения сообщений электронной почты.
- Загрузите файл электронной почты с помощью класса MailMessage.
- Прочитайте содержимое письма, используя MailMessage->get_From(), MailMessage->get_To(), MailMessage->get_Subject(), MailMessage->get_Body() и т. д. методы.
Ниже приведен пример кода для чтения сообщений электронной почты с помощью C++.
// Создайте экземпляр MailMessage, загрузив файл EML
System::SharedPtr<MailMessage> message = MailMessage::Load(u"SourceDirectory\\Message.eml", System::MakeObject<EmlLoadOptions>());
// Получить информацию об отправителе
System::Console::WriteLine(u"From:");
System::Console::WriteLine(message->get_From());
// Получить информацию о получателях
System::Console::WriteLine(u"To:");
System::Console::WriteLine(message->get_To());
// Получить тему
System::Console::WriteLine(u"Subject:");
System::Console::WriteLine(message->get_Subject());
// Получить тело HTML
System::Console::WriteLine(u"HtmlBody:");
System::Console::WriteLine(message->get_HtmlBody());
// Получить текстовое тело
System::Console::WriteLine(u"TextBody:");
System::Console::WriteLine(message->get_Body());
Извлечение информации заголовка из сообщений электронной почты
Ниже приведены шаги для извлечения информации заголовка из сообщений электронной почты.
- Загрузите файл электронной почты с помощью класса MailMessage.
- Получите перечислитель заголовков с помощью метода MailMessage->get_Headers()->GetEnumerator().
- Прокрутите заголовки и извлеките заголовок, используя метод MailMessage->get_Headers()->Get (int32\t index).
Ниже приведен пример кода для извлечения информации заголовка из сообщений электронной почты с помощью C++.
// Создайте экземпляр MailMessage, загрузив файл EML
System::SharedPtr<MailMessage> message = MailMessage::Load(u"SourceDirectory\\Message.eml", System::MakeObject<EmlLoadOptions>());
// Распечатайте все заголовки
int32_t index = 0;
{
auto header_enumerator = message->get_Headers()->GetEnumerator();
decltype(header_enumerator->get_Current()) header;
while (header_enumerator->MoveNext() && (header = header_enumerator->get_Current(), true))
{
System::Console::Write(header + u" - ");
System::Console::WriteLine(message->get_Headers()->Get(index++));
}
}
Декодировать значения заголовков сообщений электронной почты
Ниже приведены шаги для декодирования значений заголовков в сообщениях электронной почты.
- Загрузите файл электронной почты с помощью класса MailMessage.
- Декодируйте значение заголовка с помощью метода MailMessage->get_Headers()->GetDecodedValue (System::String name).
Ниже приведен пример кода для декодирования значений заголовков в сообщениях электронной почты с помощью C++.
// Создайте экземпляр MailMessage, загрузив файл EML
System::SharedPtr<MailMessage> message = MailMessage::Load(u"SourceDirectory\\Message.eml", System::MakeObject<EmlLoadOptions>());
// Получить декодированное значение из заголовка
System::String decodedValue = message->get_Headers()->GetDecodedValue(u"Thread-Topic");
// Распечатайте значение
System::Console::WriteLine(decodedValue);
Получить бесплатную лицензию
Вы можете попробовать API без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.
Живая демонстрация
Вывод
В этой статье вы узнали, как читать сообщения электронной почты с помощью C++. В частности, вы научились читать содержимое электронного письма и информацию заголовка. Вы также видели, как декодировать значения заголовков с помощью Aspose.Email для C++ API. Помимо чтения сообщений электронной почты, API предоставляет гораздо больше возможностей для работы с электронной почтой. Вы можете подробно изучить API, посетив официальную документацию. Если у вас есть какие-либо вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.