Attachments and EWS in Exchange
Узнайте о вложениях и о том, как управляемый API EWS или EWS в клиенте Exchange представляет их.
Обычно вложения связаны с элементами электронной почты, но на самом деле все элементы EWS — сообщения электронной почты, элементы календаря, контакты, задачи — могут содержать вложения.
Типы вложений
EWS классифицирует вложения на две группы: вложения файлов и вложения элементов.
Вложения элементов: Строго типизированные элементы EWS, такие как сообщения электронной почты и элементы календаря, которые присоединяются к другому строго типизированному элементу EWS. Любой строго типизированный элемент, который можно создать с помощью управляемого API EWS или EWS, можно использовать в качестве вложения элемента. Содержимое вложения элемента — это строго типизированный элемент, который обеспечивает простой доступ ко всем его свойствам. Вложения элементов могут иметь собственные вложения элементов, поэтому возможна иерархия вложений элементов (или вложение вложений).
Вложения файлов: Любой файл, например .txt, .jpg, .zip, .pdf или даже MSG-файл. Вложение файла имеет только несколько свойств, одним из которых является содержимое файла в кодировке base-64.
Ссылочные вложения: Любое вложение, на которое ссылается поставщик файлов, например файл, расположенный в облаке. Вложение может быть от нескольких поставщиков.
При добавлении или извлечении вложений из элемента вы будете делать это по-разному в зависимости от того, является ли это вложением файла или вложением элемента. Например, чтобы добавить вложение файла к элементу, можно просто передать расположение файла. Чтобы добавить существующий элемент в качестве вложения элемента, фактически необходимо скопировать свойства или содержимое MIME существующего элемента в новое вложение элемента; нельзя просто привязать к существующему элементу. Поэтому важно различать два типа вложений. Дополнительные сведения о различиях между вложениями элементов и файлами рассматриваются в статьях в этом разделе.
Как вложения представляются программными средствами?
Вложения хранятся в коллекции элемента EWS. Коллекция вложений состоит из файловых вложений и (или) вложений элементов. Метаданные о коллекции вложений доступны при получении элемента с помощью метода EWS Managed API Item.Bind или операции GetItem EWS, но для фактического получения содержимого вложений требуются дополнительные вызовы.
Таблица 1. Метаданные элемента о вложениях
Сущность метаданных | Свойство Управляемого API EWS | Элемент EWS |
---|---|---|
Индикатор вложения (не помечает встроенные вложения) |
Item.HasAttachments |
HasAttachments |
Коллекция Attachment |
Item.Attachments |
Вложения |
Идентификатор вложения |
Attachment.Id |
AttachmentId |
Табл. 2. Сущности вложений
Тип вложения | Класс Управляемого API EWS | Элемент EWS |
---|---|---|
Вложение файла |
FileAttachment |
FileAttachment |
Вложение элемента |
ItemAttachment ЭлементAttachment<TItem> |
ItemAttachment |
Вложение в виде ссылки |
ReferenceAttachmentType complexType (EWS) |
ReferenceAttachment |
Встроенные вложения
Встроенные вложения — это особая порода прикрепления. Вложенные файлы и вложения элементов могут быть встроенными. Встроенное вложение отображается как часть основного содержимого и сохраняет свое положение относительно остального содержимого элемента.
Вложение — это встроенное вложение, если свойству IsInline управляемого API EWS или элементу IsInline EWS присвоено значение true. Встроенные вложения используют следующие необязательные свойства и элементы для определения расположения встроенного вложения:
Управляемый API EWS — свойства ContentId или ContentLocation .
EWS — элемент ContentId или ContentLocation .
Обратите внимание, что свойство HasAttachments управляемого API EWS и элемент EWS HasAttachments не отражают существование встроенных вложений, поэтому встроенные вложения также называются скрытыми. Таким образом, если для свойства IsInline Управляемого API EWS или элемента IsInline EWS задано значение true, а элемент не содержит других вложений, hasAttachments будет иметь значение false. Если клиент использует HasAttachments для заполнения индикатора или значка вложения в сообщении электронной почты, имейте в виду, что значок не будет отображаться для сообщений электронной почты со встроенными вложениями.