Чтение сообщений электронной почты с помощью C++

Электронная почта является основным источником общения через Интернет. Вы можете столкнуться с ситуациями, когда вы хотите, чтобы ваши приложения читали файлы EML и MSG и добавляли их содержимое в какой-либо файл или выполняли над ними какую-либо другую операцию. С этой целью эта статья научит вас читать сообщения электронной почты с помощью C++.

C++ API для чтения сообщений электронной почты

Aspose.Email для C++ — это собственная библиотека C++ для создания, обработки и отправки электронных писем, не требующая установки Microsoft Outlook. API также поддерживает чтение файлов электронной почты EML и MSG. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.

PM> Install-Package Aspose.Email.Cpp

Чтение сообщений электронной почты с помощью C++

Ниже приведены шаги для чтения сообщений электронной почты.

Ниже приведен пример кода для чтения сообщений электронной почты с помощью 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());
Вывод, сгенерированный примером кода

Вывод, сгенерированный примером кода

Извлечение информации заголовка из сообщений электронной почты

Ниже приведены шаги для извлечения информации заголовка из сообщений электронной почты.

Ниже приведен пример кода для извлечения информации заголовка из сообщений электронной почты с помощью 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++));
    }
}

Декодировать значения заголовков сообщений электронной почты

Ниже приведены шаги для декодирования значений заголовков в сообщениях электронной почты.

Ниже приведен пример кода для декодирования значений заголовков в сообщениях электронной почты с помощью 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, посетив официальную документацию. Если у вас есть какие-либо вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также