3

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 サービスのバグですか?

4

0 に答える 0