7

我决定我真的不喜欢微软和他们的方式。请您给我有关如何处理电子邮件中的 winmail.dat 的指示,是否有 jython 库或 java 库可以让我处理这个问题。

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

请您简要描述一下 winmail.dat 是什么以及为什么它会惹恼我们。

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

非常感谢您的宝贵时间。

4

7 回答 7

6

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

此处用于解析的包:
https ://github.com/verdammelt/tnef

于 2008-12-03T08:59:53.363 回答
5

主题已关闭,但为了将来的目的:Apache POI项目(用于 Microsoft 文档的 Java API)正在推出能够解码 TNEF 文件的版本 (3.8)。我对其进行了测试并且工作得很好,甚至是测试版。你可以在这里找到它。

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

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-scratchpad</artifactId>
        <version>3.14</version>
    </dependency>
于 2012-06-29T13:07:48.103 回答
3

请您简要描述一下 winmail.dat 是什么以及为什么它会惹恼我们。

KB138053

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

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

于 2008-12-03T09:01:25.170 回答
1

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

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

于 2008-12-03T09:01:51.410 回答
1

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

http://www.restoroot.org/LetterOpenerPro

于 2013-05-24T09:45:49.573 回答
1

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

于 2018-12-02T20:08:40.517 回答
0

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

于 2008-12-03T14:45:16.130 回答