在 C# 中处理 Outlook 邮件附件和嵌入消息

电子邮件附件是与邮件消息一起发送的文件,使用户能够共享文档、图像、视频或任何其他数字内容。有效地处理电子邮件附件是现代通信系统的重要方面,尤其是对于希望在其应用程序中无缝管理附件的 C# 开发人员。

C# .NET API 管理电子邮件附件

要处理电子邮件附件,我们将使用 Aspose.Email for .NET,这是一个强大而全面的 API,旨在帮助 C# 开发人员在其 .NET 应用程序中处理电子邮件消息和各种相关任务。它提供了丰富的功能,用于创建、处理、转换和管理消息,使其成为需要在软件应用程序中集成电子邮件功能的企业和开发人员的重要工具。要利用该 API 的强大功能,请 下载 其 DLL 或从 NuGet 安装。

添加常规附件

常规附件是附加到电子邮件消息中的独立文件,通常在邮件正文中显示为单独的图标或链接。

电子邮件附件示例 - 常规附件

Aspose.Email 直观的 API 允许您在几行代码中将常规附件添加到消息中。通过以下步骤和代码示例,您将创建一个示例电子邮件消息 (MSG) 并将一个文件附件(“document.pdf”)添加到其中,使用 MapiMessage 类在 C# 中:

  1. 创建或加载一个 MapiMessage。
  2. 将 “document.pdf” 的内容读取到一个字节数组中。
  3. 使用附件名称(“document.pdf”)和数据将附件添加到消息的 Attachments 集合中。

添加内联附件

内联附件旨在直接显示在电子邮件消息的正文中。这通常用于将图像或其他媒体直接嵌入邮件内容中,使收件人可以查看内容,而无需打开单独的附件。

电子邮件附件示例 - 内联附件

消息内容中的图像是一个内联附件。Aspose.Email API 允许在执行其他操作之前检查附件是否为内联,以下代码示例演示了如何执行此任务。

  1. 使用 MapiMessage.Load() 方法从文件加载电子邮件消息。
  2. 遍历其附件集合。
  3. 对于集合中的每个附件,打印出它们的显示名称以及指示它们是内联还是常规的布尔值。

添加引用附件

引用附件在电子邮件消息中不包含实际的文件内容。相反,它们包含指向外部资源的链接,例如托管在网络服务器上的图像。当收件人打开电子邮件时,他们的客户端或网页浏览器会从指定的 URL 获取这些资源以显示内容。因此,用户可以发送一个指向存储在 Google Drive 中的文件的链接。您可以创建一个链接附件,将其链接到 Google Drive 上的文件,而不是将文档直接附加到消息中。

电子邮件附件示例 - 引用附件

以下代码示例演示了如何创建一个带有引用附件的消息:

  1. 创建或加载一个 MapiMessage 对象。
  2. 使用 MapiAttachmentCollection.Add 方法将引用附件添加到消息中,提供文件名、文件 URL、文件夹 URL 和提供者名称。
  3. 使用 MapiAttachment.SetProperty 方法设置附件的权限类型,以指定谁可以编辑它。
  4. 可选地,您可以设置其他属性,例如原始权限类型、附件是否为文件夹、提供者端点 URL、预览 URL 和缩略图 URL。
  5. 使用 Save 方法将消息保存到文件中。

添加嵌入消息

嵌入消息是包含在另一个电子邮件消息中或嵌套其中的消息。它们可以包含自己的内容、附件和元数据,并且通常封装在父消息的正文或作为附件中。

这个概念通常用于转发或回复电子邮件的场景,其中原始消息作为新消息的一部分被包含。在这种情况下,原始消息成为新消息正文中的嵌入消息,保留其自己的内容,包括发件人、收件人和主题。此功能对电子邮件通信至关重要,使用户能够在交换消息时保持一致的对话线程。

嵌入消息示例

Aspose.Email 提供了实现此功能的组件。以下代码示例及其步骤演示了如何向电子邮件消息添加嵌入对象:

  1. 创建一个 MapiMessage 类的实例。
  2. 使用 MapiMessage.Load() 方法从文件加载现有消息。
  3. 将加载的消息作为附件添加到先前创建的消息中。为此,请使用 MapiAttachmentCollection.Add 方法。

将所有附件保存为 MSG 作为单独文件

以下代码示例将向您展示如何从文件加载电子邮件消息,并将消息中的每个单独附件保存到一个带有其原始文件名的单独文件中。

  1. 创建一个 MapiMessage 类的实例。
  2. 遍历加载消息的附件集合。
  3. 对于每个附件,使用 Save 方法将其保存为单独的文件,确保每个附件都以其原始文件名保存。

结论

在本文中,我们探讨了将不同类型的附件和嵌入对象添加到电子邮件消息的实际实现,以及在 C# 中将附件保存为单独文件的过程,提供了简洁的代码示例以说明这些过程。Aspose.Email for .NET 突出显示了作为一种多功能解决方案,使开发人员能够高效管理电子邮件附件,并增强其应用程序中的通信任务,从而确保最终用户获得一致和无缝的体验。

免费资源:

  • 支持论坛 可用于提问、寻求帮助和与社区互动,以解决问题或获得有效使用库的见解
  • 广泛的 文档 全面涵盖库功能的各个方面,访问 API 参考、教程、代码示例和最佳实践
  • 信息丰富的 博客 涉及与电子邮件管理、附件处理和其他相关主题相关的广泛话题,提供见解、提示和最新功能与发展动态
  • 免费的 应用 旨在增强用户在各种平台上的电子邮件管理和生产力

另见: