电子邮件是通过 Internet 进行通信的主要来源。您可能会发现自己处于希望应用程序读取 EML 和 MSG 文件并将其内容添加到某个文件或对它们执行某些其他操作的场景中。为此,本文将教您如何使用 C++ 阅读电子邮件。
用于阅读电子邮件的 C++ API
Aspose.Email for C++ 是一个本地 C++ 库,用于创建、操作和发送电子邮件,无需安装 Microsoft Outlook。该 API 还支持读取 EML 和 MSG 电子邮件文件。您可以通过 NuGet 安装 API,也可以直接从 Downloads 部分下载。
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。如果您有任何问题,请随时通过我们的 免费支持论坛 联系我们。