我如何从Java的MS Exchange Server以编程方式获取电子邮件标题? [英] How I can get email headers programmatically from MS Exchange Server in Java?
问题描述
我无法访问电子邮件中的标题。在那一刻,我只能得到ExtendedPropertyCollection对象,但我不知道如何使用它。
ItemEvent item =( ItemEvent)事件;
EmailMessage message = EmailMessage.bind(args.getSubscription()。getService(),item.getItemId());
ExtendedPropertyCollection extendedProperties =((ExtendedPropertyCollection)message.getExtendedProperties());
更新:
Java中的结果代码如下所示:
PropertySet propertySet = new PropertySet(BasePropertySet.FirstClassProperties,ItemSchema.MimeContent);
EmailMessage消息= 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/webservices/data/InternetMessageHeader.java
另一种方法是使用PR_TRANSPORT_MESSAGE_HEADERS扩展属性,例如
ExtendedPropertyDefinition PR_TRANSPORT_MESSAGE_HEADERS =新的ExtendedPropertyDefinition(0x007D,MapiPropertyType.String);
PropertySet psPropSet = new PropertySet(BasePropertySet.FirstClassProperties){PR_TRANSPORT_MESSAGE_HEADERS};
EmailMessage message = EmailMessage.bind(args.getSubscription()。getService(),item.getItemId(),psPropSet);
欢呼
Glen
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.
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:
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
The other way is to use the PR_TRANSPORT_MESSAGE_HEADERS extended property eg
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
这篇关于我如何从Java的MS Exchange Server以编程方式获取电子邮件标题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!