Exchange の添付物と EWS
添付物と、Exchange クライアントの EWS マネージ API または EWS で添付物を表す方法について説明します。
通常、添付物は、メール アイテムに関連付けられていますが、実際には、すべての EWS アイテム (子メールのメッセージ、予定表アイテム、連絡先、タスク) に添付物を含めることができます。
添付物の種類
EWS は、添付物をファイル添付とアイテム添付の 2 つのグループに分類します。
アイテム添付: メール メッセージ、予定表アイテムなどの厳密に型指定された EWS アイテム。これらは厳密に型指定された別の EWS アイテムに添付されています。 EWS マネージ API または EWS を使用して作成できるすべての厳密に型指定されたアイテムは、アイテム添付として使用できます。 アイテム添付のコンテンツは、厳密に型指定されたアイテムであり、そのすべてのプロパティに簡単にアクセスできます。 アイテム添付はそれ自体のアイテム添付を持つことができます。そのためアイテム添付の階層 (または添付物の入れ子) を構成できます。
ファイル添付: .txt、.jpg、.zip、.pdf などのすべてのファイル (.msg ファイルも含む)。 ファイル添付には少数のプロパティしかありませんが、その 1 つは、Base-64 でエンコードされたファイル コンテンツです。
参照添付物: ファイル プロバイダーによって参照される添付物 (クラウド内にあるファイルなど)。 1 つの添付物が複数のプロバイダーから参照される場合もあります。
添付物をアイテムに追加またはアイテムから取得する場合、ファイル添付であるか、アイテム添付であるかによって、操作が異なります。 たとえば、アイテムにファイル添付を追加する場合は、ファイルの場所を渡すだけです。 アイテム添付として既存のアイテムを追加する場合は、既存のアイテムのプロパティまたは MIME コンテンツを新しいアイテム添付に実際にコピーする必要があります。既存のアイテムにバインドすることはできません。 そのため、添付物の 2 つの種類を区別することが重要になります。 アイテム添付とファイル添付の違いの詳細については、このセクションの記事で説明します。
プログラムによる添付物の表示方法
添付物は、EWS のアイテムのコレクションに保存されます。 添付物コレクションは、ファイル添付またはアイテム添付、あるいはその両方で構成されています。 添付物コレクションに関するメタデータは、EWS マネージ API の Item.Bind メソッドまたは EWS の GetItem 操作を使用してアイテムを取得した場合に使用できます。ただし、添付物のコンテンツを実際に取得するには追加の呼び出しを行う必要があります。
表 1. 添付物に関するアイテムのメタデータ
メタデータ エンティティ | EWS マネージ API のプロパティ | EWS の要素 |
---|---|---|
添付物のインジケーター (インライン添付のフラグを設定しない) |
Item.HasAttachments |
HasAttachments |
添付物のコレクション |
Item.Attachments |
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 を使用して、メールの添付物のインジケーターまたはアイコンを設定する場合は、インライン添付を含むメールではアイコンが表示されないことに注意してください。