【问题标题】:How I can get email headers programmatically from MS Exchange Server in Java?如何以编程方式从 Java 中的 MS Exchange Server 获取电子邮件标头?
【发布时间】:2015-02-14 22:12:19
【问题描述】:

我无法访问电子邮件中的标题。那时我只能得到 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());

【问题讨论】:

    标签: java header outlook exchange-server


    【解决方案1】:

    有两种方法可以通过 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);
    

    干杯 格伦

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-21
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      相关资源
      最近更新 更多