附件和 EWS Exchange 中
了解附件以及 Exchange 客户端中的 EWS 托管 API 或 EWS 如何表示附件。
通常,附件与电子邮件项目相关联,但事实上,所有 EWS 项目(电子邮件、日历项目、联系人、任务)都可以包含附件。
附件类型
EWS 将附件分为两组:文件附件和项目附件。
项目附件: 附加到另一个强类型 EWS 项的强类型 EWS 项,例如电子邮件和日历项目。 可以使用 EWS 托管 API 或 EWS 创建的任何强类型项可用作项附件。 项目附件的内容是强类型项,它提供对其所有属性的轻松访问。 项目附件可以有自己的项目附件,因此可以 (或嵌套附件) 的项目附件层次结构。
文件附件: 任何文件,例如.txt、.jpg、.zip、.pdf,甚至 .msg 文件。 文件附件只有几个属性,其中一个属性是文件的 base-64 编码内容。
引用附件: 文件提供程序引用的任何附件,例如位于云中的文件。 附件可以来自多个提供程序。
从项目添加或检索附件时,根据项目附件是文件附件还是项目附件,以不同的方式执行此操作。 例如,若要向项添加文件附件,只需传入文件的位置即可。 若要将现有项目添加为项目附件,实际上必须将现有项的属性或 MIME 内容复制到新项目附件;不能只绑定到现有项。 因此,区分这两种类型的附件非常重要。 有关项目附件和文件附件之间的差异的更多详细信息,请参阅 本部分中的文章。
附件是如何以编程方式表示的?
附件存储在 EWS 项的集合中。 附件集合由文件附件和/或项目附件组成。 使用 EWS 托管 API Item.Bind 方法或 EWS GetItem 操作获取项时,可以使用有关附件集合的元数据,但实际检索附件的内容需要其他调用。
表 1. 有关附件的项目元数据
元数据实体 | EWS 托管 API 属性 | EWS 元素 |
---|---|---|
附件指示器 (不标记内联附件) |
Item.HasAttachments |
HasAttachments |
Attachment 集合 |
Item.Attachments |
附件 |
附件 ID |
Attachment.Id |
AttachmentId |
表 2. 附件实体
附件类型 | EWS 托管 API 类 | EWS 元素 |
---|---|---|
文件附件 |
FileAttachment |
FileAttachment |
项目附件 |
ItemAttachment ItemAttachment<TItem> |
ItemAttachment |
参考附件 |
ReferenceAttachmentType complexType (EWS) |
ReferenceAttachment |
内联附件
内联附件是一种特殊类型的附件。 文件附件和项目附件都可以是内联附件。 内联附件显示为正文内容的一部分,并保留其相对于项目中其余内容的位置。
如果 EWS 托管 API IsInline 属性或 EWS IsInline 元素设置为 true,则附件是内联附件。 内联附件使用以下可选属性和元素来标识内联附件的位置:
EWS 托管 API - ContentId 或 ContentLocation 属性。
EWS — ContentId 或 ContentLocation 元素。
请注意,EWS 托管 API HasAttachments 属性和 EWS HasAttachments 元素并不反映内联附件的存在,因此内联附件也称为隐藏附件。 因此,如果将 EWS 托管 API IsInline 属性或 EWS IsInline 元素设置为 true,并且该项没有其他附件, HasAttachments 将设置为 false。 如果客户端使用 HasAttachments 在电子邮件上填充附件指示器或图标,请注意,对于具有内联附件的电子邮件,该图标不会显示。