我如何从Java的MS Exchange Server以编程方式获取电子邮件标题? [英] How I can get email headers programmatically from MS Exchange Server in Java?

查看:366
本文介绍了我如何从Java的MS Exchange Server以编程方式获取电子邮件标题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法访问电子邮件中的标题。在那一刻,我只能得到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆