在Java中读取Outlook .msg文件的最佳库是什么?

我想从Java应用程序中读取已保存的Outlook消息(.msg文件)中的文本和二进制附件,而不需要使用本机代码(JNI,Java本机接口)。

Apache POI-HSMF似乎正朝着正确的方向发展,但它处于发展的早期阶段……

  • 您可以使用Apache POIFS,这似乎更成熟一些,但这似乎会重复POI-HSMF的工作。

  • 您可以使用POI-HSMF并提供更改以获得您需要的function。 这通常是FOSS项目的扩展方式。

  • 您可以使用com4j,j-Interop或其他一些COM级别的互操作function,并直接与提供对结构化文档的访问的COM接口进行交互。 这比直接通过JNI直接命中要容易得多。

msgparser是一个小型开源Java库,它解析Outlook .msg文件并使用Java对象提供其内容。 msgparser使用Apache POI – POIFS库来解析使用OLE 2复合文档格式的消息文件。

您是否尝试将Jython与Python win32扩展一起使用( http://www.jython.org/Project/ + http://python.net/crew/mhammond/win32/ )? 如果这是一个“个人”或“内部”项目,使用Python的Jython可能是一个非常好的选择。 如果您正在构建“收缩包装”软件包,这可能不是最佳选择。

Apache POI-HSMF。

您可以从下面链接中给出的示例开始。 http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/examples/src/org/apache/poi/hsmf/examples/Msg2txt.java?revision=821500&view=markup&pathrev=821500

进一步阅读库文档。