EWS(使用Office 365服务器)永远不会返回PR_BODY
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应该具有哪种类型,但在类型正确时仍然不返回任何内容。
BTW,这适用于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服务的错误吗?