EWS 永远不会返回 PR_BODY(使用 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 服务的错误吗?