简体   繁体   English

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

[英]How I can get email headers programmatically from MS Exchange Server in Java?

I can't get access to headers in email. 我无法访问电子邮件中的标题。 At that moment I can get only ExtendedPropertyCollection object, but I don't know how to work with it. 那时我只能得到ExtendedPropertyCollection对象,但是我不知道如何使用它。

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

UPDATE: 更新:

The result code in Java looks like: 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());

There are two ways to do that you should be able to access the InternetMessageHeader collection vai the EmailMessage class https://github.com/OfficeDev/ews-java-api/blob/master/src/main/java/microsoft/exchange/webservices/data/InternetMessageHeader.java 有两种方法可以使您可以通过EmailMessage类访问InternetMessageHeader集合https://github.com/OfficeDev/ews-java-api/blob/master/src/main/java/microsoft/exchange/ web服务/数据/ InternetMessageHeader.java

The other way is to use the PR_TRANSPORT_MESSAGE_HEADERS extended property eg 另一种方法是使用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);

Cheers Glen 干杯格伦

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM