電子郵件是 Internet 上的主要通信來源。您可能會發現自己處於希望應用程序讀取 EML 和 MSG 文件並將其內容添加到某個文件或對它們執行其他操作的場景中。為此,本文將教您如何使用 C++ 閱讀電子郵件。
用於讀取電子郵件消息的 C++ API
Aspose.Email for C++ 是一個原生的 C++ 庫,用於創建、操作和發送電子郵件,無需安裝 Microsoft Outlook。 API 還支持讀取 EML 和 MSG 電子郵件文件。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。
PM> Install-Package Aspose.Email.Cpp
使用 C++ 閱讀電子郵件
以下是閱讀電子郵件的步驟。
- 使用 MailMessage 類加載電子郵件文件。
- 使用 MailMessage->getFrom()、MailMessage->getTo()、MailMessage->getSubject()、MailMessage->getBody( )等方法。
以下是使用 C++ 閱讀電子郵件的示例代碼。
// 通過加載 EML 文件創建 MailMessage 實例
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->getHeaders()->GetEnumerator() 方法獲取標頭枚舉器。
- 遍歷標題並使用 MailMessage->getHeaders()->Get (int32t index) 方法檢索標題。
以下是使用 C++ 從電子郵件消息中提取標頭信息的示例代碼。
// 通過加載 EML 文件創建 MailMessage 實例
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->getHeaders()->GetDecodedValue (System::String name) 方法解碼標頭的值。
以下是使用 C++ 解碼電子郵件中標頭值的示例代碼。
// 通過加載 EML 文件創建 MailMessage 實例
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 for C++ API 解碼標頭值。除了閱讀電子郵件之外,API 還提供了更多處理電子郵件的功能。您可以通過訪問 官方文檔 來詳細探索 API。如果您有任何疑問,請隨時通過我們的 免費支持論壇 與我們聯繫。