尝试在ExtendedPropertyDefinition中获取文本正文时未收到任何响应
问题描述:
我希望以纯文本格式接收邮件正文文本。 我正在使用下面的代码,但是当我试图通过扩展属性集合时,它什么也没给。尝试在ExtendedPropertyDefinition中获取文本正文时未收到任何响应
extendedPropertyDefinition = new ExtendedPropertyDefinition(0X1000,
MapiPropertyType.String);
propertySet = new PropertySet(PropertySet.FirstClassProperties.getBasePropertySet(),
ItemSchema.MimeContent, extendedPropertyDefinition);
propertySet.setRequestedBodyType(BodyType.HTML);
emailMessage = EmailMessage.bind(service, itemId, propertySet);
答
如果你想在纯正文则只是让
propertySet.setRequestedBodyType(BodyType.HTML);
像
propertySet.setRequestedBodyType(BodyType.Text);
你不能要求这两种体类型相同的请求EWS将只提供,甚至一回给你。如果你想同时请求这两个请求,你可以尝试将它从MimeContent中解析出来,但是你是否会在这里得到两个将取决于消息的原始格式。很多时候,当询问文本正文时,Exchange商店会根据消息发送的原始格式进行一次转换。
我想要HTML和纯文本内容。 如果我尝试下面的代码: - PR_HTML_BODY = new ExtendedPropertyDefinition(0X1013, MapiPropertyType.Binary); propertySet = new PropertySet(PropertySet.FirstClassProperties.getBasePropertySet(), ItemSchema.MimeContent,PR_HTML_BODY); propertySet.setRequestedBodyType(BodyType.Text); 这将HTML作为字节[],同时将此字节[]转换为字符串,它会为特殊字符生成垃圾。 是否有无法通过ExtendedPropertyDefinition获取纯文本 –
您不能在同一请求中请求两个消息正文(即使您使用扩展属性),但由于我提到的原因,它不起作用,您将需要提出两个请求。在这种情况下,您不需要使用扩展属性,只需使用强类型扩展属性即可,因为它会返回字符串,所以不会收到问题。 –