如何获取项目的mimetype?

时间:2014-02-20 10:33:30

标签: java exchange-server mime-types ewsjavaapi

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

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

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

是否有交换时的mimetype?

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

1 个答案:

答案 0 :(得分: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。它基本上将EmailMessage类从EWS Java API转换为Java的MimeMessage,它具有相关的getContentType方法。