无法通过Office 365 EWS获取PidTagBody(0x1000)值

时间:2016-11-28 18:48:09

标签: c# office365 exchangewebservices managed-ews

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服务的错误吗?

0 个答案:

没有答案