处理消息附件
解析和保存附件
Outlook 消息文件可能包含一个或多个附件。Aspose.Email 允许开发者遍历 MSG 文件中的附件并将其保存到磁盘。本主题描述了此过程,并说明了如何嵌入附件。
Aspose.Email MapiMessage 类用于从磁盘加载 MSG 文件,并公开了 getAttachments() 引用 … 的 method MapiAttachment 与 MSG 文件关联的对象集合。该 MapiAttachment 对象进一步公开用于对附件执行操作的方法。
将 MSG 文件中的附件以原始名称和扩展名保存到磁盘的方法:
- 创建该类的实例 MapiMessage 类使用此方法加载 MSG 文件 Load() 静态方法的引用。
- 调用 MapiRecipient 类 getAttachments() 获取集合引用的方法 MapiAttachment 与 MSG 文件关联的对象。
- 循环遍历 MapiAttachmentCollection 用于显示每个 … 的内容 MapiAttachment 对象通过其公共方法。
- 调用 MapiAttachment 类 save() 将附件保存到磁盘的方法。
将消息作为附件嵌入
Microsoft Outlook 消息的附件中可以包含其他 Outlook 消息,既可以是上述的普通消息,也可以是嵌入式消息。该 MapiAttachmentCollection 提供了 add 方法的重载成员,以创建包含两种类型附件的 Outlook 消息。嵌入在 MSG 文件中的 Outlook MSG 文件包含值为 5 的 PR_ATTACH_METHOD。
从附件读取嵌入的消息
附件 MSG 插入与替换
Aspose.Email API 提供了在父消息中按特定索引插入附件的能力,还提供了将附件内容替换为另一条消息附件的功能。
在特定位置插入 MSG 附件
Aspose.Email API 提供了使用 … 将 MSG 附件插入到父 MSG 的功能。 MapiAttachmentCollection.Insert() 方法。
替换嵌入的 MSG 附件内容
这可用于使用 … 将嵌入的附件内容替换为新内容。 替换 method。然而,它不能用于在集合计数为 2 的集合中插入 PR_ATTACH_NUM = 4(例如)的附件。
从数字签名消息中保存附件
Aspose.Email API 提供了获取或设置指示是否对明文签名消息进行解码的值的功能。
在 MapiMessage 中重命名附件
Aspose.Email 使编辑 … 成为可能 显示名称 属性值在 MapiMessage 附件.
以下代码示例演示如何更新已加载 Mapi 消息中第一和第二个附件的显示名称:
MapiMessage msg = MapiMessage.load(fileName);
msg.getAttachments().get_Item(0).setDisplayName("New display name 1");
msg.getAttachments().get_Item(1).setDisplayName("New display name 2");
检查附件是内联还是普通
内联附件和普通附件的区别在于它们在电子邮件中的呈现方式。内联附件嵌入在邮件正文中,无需打开单独的文件或下载任何东西即可查看。而普通附件是独立的文件,附加在邮件上但不直接显示在正文中,需要下载后在外部打开。该 MapiAttachment.IsInline 属性的 MapiAttachment 类获取指示附件是内联还是普通的值。
以下代码示例从文件加载电子邮件消息,然后检索附件信息,具体打印每个附件的显示名称以及它是否为内联附件:
MapiMessage message = MapiMessage.load("fileName");
for (MapiAttachment attach : message.getAttachments()) {
System.out.println(attach.getDisplayName() + ": " + attach.isInline());
}