0

情况: 系统通过标准方法 (Pop3) 从邮件服务器获取电子邮件,并将它们作为多部分消息(*.eml 文件)发送到存档组件。

如果邮件是从 Outlook 发送的,它可能包含一个 OLE 对象,例如 MS Word、MS Excel 等。有几种方法可以包含这样的对象,例如通过菜单“插入->对象”

问题: 我们现在的要求是提取那些 OLE 对象,将它们归档为单独的附件。最好用 Java 或其他 JVM 语言来完成。其他语言和框架是可能的,但它们必须在不同的平台上工作(Win、Linux、Unix)

问题是我们没有在库中找到任何库或函数来执行此操作。

第一个问题是,接收者收到的消息取决于 Outlook 的配置方式:

  • 它可能会发送 RTF 消息:然后接收者收到带有附件“Untitled Attachment.bin”的消息
  • 它可能会发送 HTML 消息:然后接收者会收到包含附件“oledata.mso”的消息。

到目前为止我们所尝试的: 我们尝试了 Apache POI,尤其是 POIFS 来加载文件“oledata.mso”,但它抱怨某些标头值是错误的:

Invalid header signature; read 0xD7EC9C7800013000, expected 0xE11AB1A1E011CFD0 - Your file appears not to be a valid OLE2 document

我们找到了一个谈论同样问题的网站。据我们了解,oledata.mso 是Compound File Binary Files的集合。这也应该可以单独用 POI 解析,因为 OpenMCDF 做的事情与 POI 相同。 在这个网站上,他们以某种方式将各个部分分开并单独解析。但是我们还没有找到类似的功能或任何规范如何做到这一点。

任何人都可以对此有所了解吗?

4

0 回答 0