我无法访问电子邮件中的标题。那时我只能得到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类https://github.com/OfficeDev/ews-java-api/blob/master/src/main/java/microsoft/exchange/webservices/data/InternetMessageHeader.java访问InternetMessageHeader集合。

另一种方法是使用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);


干杯
格伦

10-07 22:36