如何从Java中的MS Exchange Server以编程方式获取电子邮件标头?

我无法访问电子邮件中的标题。 那一刻我只能获得ExtendedPropertyCollection对象,但我不知道如何使用它。

ItemEvent item = (ItemEvent) event; EmailMessage message = EmailMessage.bind(args.getSubscription().getService(), item.getItemId()); ExtendedPropertyCollection extendedProperties = ((ExtendedPropertyCollection) message.getExtendedProperties()); 

更新:

Java中的结果代码如下所示:

 PropertySet propertySet = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent); EmailMessage message = EmailMessage.bind(args.getSubscription().getService(), item.getItemId(), propertySet); String emailTextWithHeaders = new String(message.getMimeContent().getContent()); 

有两种方法可以通过EmailMessage类访问InternetMessageHeader集合https://github.com/OfficeDev/ews-java-api/blob/master/src/main/java/microsoft/exchange/ web服务/数据/ InternetMessageHeader.java

另一种方法是使用PR_TRANSPORT_MESSAGE_HEADERS扩展属性,例如

 ExtendedPropertyDefinition PR_TRANSPORT_MESSAGE_HEADERS = new ExtendedPropertyDefinition(0x007D, MapiPropertyType.String); PropertySet psPropSet = new PropertySet(BasePropertySet.FirstClassProperties) { PR_TRANSPORT_MESSAGE_HEADERS}; EmailMessage message = EmailMessage.bind(args.getSubscription().getService(), item.getItemId(),psPropSet); 

干杯格伦