【问题标题】:How to get the mimetype of an item?如何获取项目的 mimetype?
【发布时间】:2014-03-21 05:39:17
【问题描述】:

我需要获取项目对象的 MimeType:

我有什么: - 来自 EWS 的项目对象 (microsoft.exchange.webservices.data.Item)

我想要什么: - 此项目的 mimetype(例如字符串“text/plain”)

是否有一个 mimetype 作为交换?

(我使用的是java ews api 1.2.0版)

【问题讨论】:

  • 你应该去this看看是不是你要找的。​​span>
  • 那里 HASinside ews api 的实现
  • 和 btw .getMimeContent() 抛出:microsoft.exchange.webservices.data.ServiceObjectPropertyException:您必须先加载或分配此属性,然后才能读取其值。

标签: java exchange-server mime-types ewsjavaapi


【解决方案1】:

我一直在寻找一个 Javamail 实现 EWS,它允许我连接到 EWS,就好像我通过 Javamail 连接到任何其他协议(IMAP、POP 等)一样。显然 MS 似乎对提供 Javamail 样式的实现不感兴趣,因为他们提供了自己的开源 EWS Java API (v2.0) https://github.com/OfficeDev/ews-java-api。文档仅限于入门,但如果您要编写一个完整的电子邮件客户端,那么文档可能会显得缺乏。最好看源码。

在阅读完源代码后,我发现 Item.getMimeContent() 方法最接近任何看起来像是为消息信封提供内容类型的方法。但是查看该方法的输出,我意识到它提供了关于消息的几乎所有内容,而不仅仅是它的内容类型。

所以这里有两个可行的选项

  1. EmailMessage.getInternetMessageHeaders().find("Content-Type").getValue() 这仅提供确切的内容类型。不存在任何其他部分(例如边界、信息或字符集)。但是,此选项适用于您的目的,因为您只对 mime 类型感兴趣
  2. 我发现的对 Javamail 更友好的替代方案是维护相对较少的库,称为 javamail4ews。该库在 EWS Java API 和 Java Mail 之间架起了一座桥梁。您可以使用它,或者如果整体不感兴趣,请查看EwsMessage。它基本上将 EWS Java API 中的 EmailMessage 类转换为具有相关 getContentType 方法的 Java 的 MimeMessage。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-11
    • 2014-01-02
    • 2016-11-15
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    相关资源
    最近更新 更多