如何处理Microsoft Outlook winmail.dat? 还有其他惊喜吗?

我决定我真的不喜欢微软和他们的方式。 请你给我一些关于如何在电子邮件中处理winmail.dat的说明,是否有一个jython库或一个允许我处理这个问题的java库。

我刚刚完成了一个电子邮件处理程序,用java 5中的jython 2.2.1编写。在最后的加载测试中,我意识到应该采用标准MIME电子邮件格式的附件现在被绑定在一些blasted winmail.dat中,意味着许多不同的Outlook客户端使用此winmail.dat污染互联网,这意味着我需要支持winmail.dat。 因此,我的程序无法正确处理数据。

请你详细介绍一下winmail.dat是什么以及为什么它会让我们烦恼。

还有什么惊喜可以预料到!? 还有什么我需要注意的,到目前为止,标准的MIME电子邮件都可以满足。 盒子里还有其他插孔吗?

非常感谢你的时间。

在这里阅读:
http://en.wikipedia.org/wiki/TNEF

一个用于解析的包:
https://github.com/verdammelt/tnef

主题已关闭,但为了将来的目的: Apache POI项目(Microsoft API的Java API)正在启动能够解码TNEF文件的版本(3.8)。 我测试了它并且工作得非常好,甚至是测试版。 你可以在这里找到它。

与maven一起使用(2016年6月 – 当它不再在暂存器中时可能会更改):

 org.apache.poi poi-scratchpad 3.14  

请你详细介绍一下winmail.dat是什么以及为什么它会让我们烦恼。

kb138053

当最终用户从Exchange Windows或Outlook客户端向Internet发送邮件时,如果收件人的客户端无法以RTF格式(RTF)接收邮件,则可能会自动将名为Winmail.dat的文件附件添加到邮件的末尾。 Winmail.dat文件包含邮件的Exchange Server RTF信息,并且可能以二进制文件的forms显示给收件人。 它对非Exchange Server收件人没用。

如果您阅读了我进一步引用的kb,它会说明Exchange管理员如何能够并且应该禁用RTF到Internet。

所以当我在电子邮件Content-Type中看到这个:“application / ms-tnef”

我用这个: http : //www.freeutils.net/source/jtnef/

我在Windows上运行wmdecode好运。 当然,这是一个EXE,而不是一个java项目。 但是,如果您遇到其他解决方案无法解码的WINMAIL.DAT文件,它可能会很有用。

只是关于tinnef的评论:并非所有被称为winmail.dat的东西都是普通的TNEF。 从Outlook发送的会议邀请不会,因此大多数TNEF解码器在这种情况下都会失败。
在Mac OSX上,我发现“Letter Opener”是可以打开此类附件的罕见程序之一。 有趣的是,它们还可以包含rtf文档。

http://www.restoroot.org/LetterOpenerPro