Exchange における EWS でのメールのプロパティと要素
Exchange で EWS マネージ API または EWS を使用して、メール メッセージで取得できるファースト クラスと他のプロパティと要素について説明します。
メール メッセージには 50 を超えるプロパティがあるので、検索する場所が分からないと、必要なプロパティを必要な時に取得する場合に混乱する可能性があります。 メールのプロパティと要素の操作方法を理解するうえで最も重要なことは、主な取得方法と操作によって返されるファースト クラスのプロパティおよび要素のセットにどれが含まれているかということです。 返されるファースト クラスのプロパティのセットは、どの方法で取得するかによって異なります。 また、BaseShape EWS 要素の AllProperties 値に惑わされないことも重要です。この値は EWS マネージ API の BasePropertySet.FirstClassMessageProperties 列挙値に対応します。 この値には、実際にすべてのプロパティが含まれているわけではなく、ファースト クラスのプロパティのみが含まれます。
メール メッセージのファースト クラスのプロパティと要素
EWS マネージ API の EmailMessage.Bind メソッドと EWS の GetItem 操作によって返されるファースト クラスのプロパティと要素のセットは、EWS マネージ API の ExchangeService.FindItems メソッドと EWS の FindItem 操作によって返されるファースト クラスのプロパティと要素のセットとは、若干異なります。 FindItems メソッドと FindItem 操作によって返されるファースト クラスのプロパティは、Bind メソッドと GetItem 操作によって返されるプロパティのサブセットです。 表 1 に、Bind メソッドと GetItem 操作によって返されるすべてのファースト クラスのプロパティと、そのうちどのプロパティが FindItems メソッドまたは FindItem 操作によって返されないのかを示します。 ToRecipients、CcRecipients、BccRecipients などの他のプロパティや要素を取得するように FindItems メソッドまたは FindItem 操作を拡張することはできません。 これらの値を取得するには、FindItems メソッドまたは FindItem 操作を使用してメールのアイテム ID を取得してから、Bind メソッドまたは GetItem 操作を使用して必要なプロパティを取得します。 Bind メソッドまたは FindItems メソッドを使用してアイテムを取得する方法を示すコード例については、「EWS マネージ API を使用してアイテムを取得する」を参照してください。 GetItem 操作または FindItem 操作を使用してアイテムを取得する方法を示すコード例については、「EWS を使用してアイテムを取得する」を参照してください。
次の表に、応答で表示される順序でファースト クラスのプロパティと要素を記載します。
表 1. ファーストクラスの電子メールのプロパティと要素
メール メッセージのその他のプロパティと要素
すべての重要なメールのプロパティと要素が、ファースト クラスのプロパティと要素であるわけではありません。 その他のプロパティまたは要素を取得するには、それらを PropertySet に追加するか (EWS マネージ API を使用している場合)、またはプロパティ パスを使用して EWS 操作呼び出しに追加する必要があります。 たとえば、メッセージのテキスト本文と MIME コンテンツを取得するには、Bind または Load メソッドで示すように PropertySet を作成します。
PropertySet(BasePropertySet.IdOnly, ItemSchema.TextBody, ItemSchema.MimeContent);
または、EWS を使用している場合は、次に示すように、該当する要素を GetItem 操作要求の AdditionalProperties 要素に追加します。
<t:AdditionalProperties>
<t:FieldURI FieldURI="item:TextBody" />
<t:FieldURI FieldURI="item:MimeContent" />
</t:AdditionalProperties>
EWS マネージ API の ServiceObject オブジェクトから継承されている EmailMessage プロパティを、Bind メソッドのプロパティ セットに含めることはできません。ただし、すべての ServiceObject プロパティは EmailMessage オブジェクト上で読み取ることができ、Bind メソッドによって取得されます。
表 2. その他の電子メールのプロパティと要素
EWS マネージ API のプロパティ | EWS の要素 | 読み取り/書き込み、または読み取り専用 |
---|---|---|
ArchiveTag |
ArchiveTag |
読み取り/書き込み |
ExtendedProperties |
ExtendedProperty |
読み取り専用 |
IconIndex |
IconIndex |
読み取り専用 |
IsAttachment |
使用不可 |
読み取り専用 |
IsDirty |
使用不可 |
読み取り専用 |
IsNew |
使用不可 |
読み取り専用 |
Item |
Item |
読み取り専用 |
MimeContent |
MimeContent |
読み取り専用 |
利用不可 |
MimeContentUTF8 |
読み取り専用 |
NormalizedBody |
NormalizedBody |
読み取り専用 |
PolicyTag |
PolicyTag |
読み取り/書き込み |
Preview |
Preview |
読み取り/書き込み |
RetentionDate |
RetentionDate |
読み取り専用 |
Schema |
使用不可 |
読み取り専用 |
Service |
使用不可 |
読み取り専用 |
StoreEntryId |
StoreEntryId |
読み取り専用 |
TextBody |
TextBody |
読み取り専用 |
UniqueBody |
UniqueBody |
読み取り専用 |