PR_BODY が EWS によって返されることはありません (Office 365 サーバーを使用)
PropertySet properties = new PropertySet(BasePropertySet.IdOnly);
ExtendedPropertyDefinition PR_BODY = new ExtendedPropertyDefinition(0x1000, MapiPropertyType.String);
properties.Add(PR_BODY);
service.LoadPropertiesForItems(findResults, properties);
サーバーの応答に本文 (0x1000) の値はありません。同時に私が変われば
ExtendedPropertyDefinition PR_BODY = new ExtendedPropertyDefinition(0x1000, MapiPropertyType.String);
に
ExtendedPropertyDefinition PR_BODY = new ExtendedPropertyDefinition(0x1000, MapiPropertyType.Binary);
例外が発生し始め、応答コードは ErrorInvalidExtendedProperty です。これは、EWS に認識されていないプロパティ ID (0x1990 など) を渡すと発生しません。したがって、EWS は 0x1000 が持つべき型を認識しますが、型が正しい場合でも何も返しません。
ところで、これは PR_BODY_HTML で機能します:
PropertySet properties = new PropertySet(BasePropertySet.IdOnly);
ExtendedPropertyDefinition PR_BODY_HTML = new ExtendedPropertyDefinition(0x1013, MapiPropertyType.Binary);
properties.Add(PR_BODY_HTML);
service.LoadPropertiesForItems(findResults, properties);
実際、次のようなコードでプレーンテキストの本文を取得できます
properties.RequestedBodyType = BodyType.Text;
properties.Add(EmailMessageSchema.Body);
または:
properties.Add(ItemSchema.TextBody);
しかし、なぜ拡張プロパティを介して機能しないのか疑問に思っています (同時に、これは HTML 本文に対しても機能します)。
最後に、ローカルの Exchange 2010 サーバーで同じことを試したところ、PR_BODY が正常に返されることがわかりました。Office 365 サービスのバグですか?