Не удается получить значение PidTagBody (0x1000) через Office 365 EWS
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 (например, 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?