2

I need to get the MimeType of an item object:

What I've got: - Item object (microsoft.exchange.webservices.data.Item) from the EWS

What I want: - The mimetype of this Item(e.g. String "text/plain")

Is there even a mimetype in exchange?

(I am using the java ews api version 1.2.0)

4

1 回答 1

2

我一直在寻找一个 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。
于 2017-01-07T13:56:11.903 回答