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

时间:2008-12-03 08:41:45

标签: java python email jython winmail.dat

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

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

请您简要介绍一下winmail.dat是什么以及为什么它会让我们烦恼。

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

非常感谢你的时间。

7 个答案:

答案 0 :(得分:6)

答案 1 :(得分:5)

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

与maven一起使用(2016年6月 - 可能会在以后不再出现在暂存器中时更改):

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-scratchpad</artifactId>
        <version>3.14</version>
    </dependency>

答案 2 :(得分:3)

  

请你缩短一下   关于winmail.dat是什么的描述   为什么在这里惹恼我们。

kb138053

  

当最终用户向其发送邮件时   来自Exchange Windows或Internet的Internet   Outlook客户端,文件附件   叫Winmail.dat可能是   自动添加到结尾了   邮件,如果收件人的客户端   无法在RTF中接收邮件   格式(RTF)。 Winmail.dat文件   包含Exchange Server RTF   消息的信息,也可以   对收件人显示为二进制文件   文件。它对非Exchange无用   服务器收件人。

如果您阅读了我进一步引用的kb,它会说明Exchange管理员可以如何 禁用RTF到互联网。

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

还有一个纯Python tnefparse软件包。应该可以从Jython使用它。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

http://www.restoroot.org/LetterOpenerPro