winmail.dat 打开工具
先把邮件里的 winmail.dat(或 ATT00001.dat)保存下来,拖到下面的框里,再点「打开文件」。你会看到邮件正文、里面打包的所有文件,可以一个个下载,也可以打包成 ZIP 一次下载。
winmail.dat 打开工具
收到的不是附件,而是 winmail.dat 或 ATT00001.dat?把文件拖到这里,就能取出里面真正的文件并查看邮件正文,全程不上传。
将文件拖放到此处或点击浏览
winmail.dat、ATT00001.dat 或其他 TNEF 文件,可以一次选多个。
正在解包文件...
为什么做这个工具
隔几个月就会有人把一封带着 winmail.dat 的邮件转给我,问的都是同一个问题:PDF 去哪了?发件人一口咬定附上了合同或者照片,可收件人这边只有一个什么软件都打不开的怪文件。在 Windows 上双击,系统问你用哪个程序打开;在 Mac 上毫无反应;在手机上有时连下载都下不下来。
附件其实几乎都在里面,只是被包在一种只有 Outlook 才认识的格式里。我想把它拆开,又不想装一个老旧的 Windows 小工具,更不想把别人的私人邮件传到陌生网站的服务器上。所以就写了这个完全在浏览器里运行的工具。
winmail.dat 到底是什么
Outlook 和 Exchange 有一套自己的邮件打包格式,叫 TNEF。邮件的排版、会议信息和附件都被塞进同一个二进制容器里。发件人的 Outlook 一旦认为对方能读富文本,就会把这个容器作为 winmail.dat 一起发出去。对方如果也用 Outlook,会悄悄拆开,你根本察觉不到。但 Gmail、Apple 邮件、Thunderbird 和大部分手机邮箱都拆不开,于是你看到的就是这个原始的包。
有时文件名会变成 ATT00001.dat、ATT00002.dat 之类,内容其实一样,通常是中途某台邮件服务器给改了名。这个工具不看文件名,而是检查文件开头的 4 个字节,也就是 TNEF 签名。所以不管它叫什么名字,甚至没有扩展名,都可以直接拖进来。
怎么用
把邮件里的 winmail.dat 保存到电脑或手机上,拖进上面的框,或者点一下框选择文件,然后点「打开文件」。马上就能看到主题和日期(如果 Outlook 存了的话)、邮件正文,以及里面打包的所有文件。每个文件都有自己的下载按钮;文件多的话,点「全部打包成 ZIP 下载」一次搞定。
可以一次选多个 .dat 文件。整串邮件往来都坏掉、每封回复各带一个 winmail.dat 的时候,这一点特别省事。每个文件单独显示一张卡片,ZIP 里也各放一个文件夹,两个同名的 image001.png 不会互相覆盖。
图片在列表里会显示小缩略图,一眼就能分清哪个是签名里的 logo,哪个才是你要的照片。直接贴在正文里的图片,会按发件人看到的样子显示在正文中。
几个真实场景
供应商用 Outlook 发来订单确认,Gmail 里却只有一个 40 KB 的 winmail.dat,没有 PDF。拖进来,PDF 就原样出来了,一个字节都不差。
同事发来会议邀请,手机上只显示 winmail.dat。会议邀请经常是这样发的。只要文件里有开始时间、结束时间和地点,工具就会把它显示成会议邀请,至少你知道什么时候该到场。
会计转发了一封旧邮件,而那封邮件本身又附带了另一封邮件。Outlook 会把里面那封邮件塞进外层的 winmail.dat。这类嵌套邮件会显示为「附带的邮件」,带着自己的正文和文件,在 ZIP 里也有单独的文件夹。
为什么在浏览器里处理
常见的 winmail.dat 网站都是把文件上传到自己的服务器,在那边拆开,再把附件传回来。如果只是一张旅游照片倒也无所谓,可要是签过字的合同、工资条或者体检报告,就不太合适了,而偏偏这些东西最常从公司的 Outlook 发出来。在这里,文件是由你自己设备上的 JavaScript 读取的,不会发送到任何地方,也不用注册账号。唯一的限制是每个文件 200 MB,反正也没有哪台邮件服务器会放行这么大的附件。
邮件正文也一样小心处理。HTML 邮件放在一个关闭了脚本的隔离框里显示,需要从网上加载的图片一律拦截。这些图片很多是追踪像素,一加载,发件人就知道你什么时候打开了邮件。
它做不到的事
被截断的文件修不好。如果邮件服务器把邮件截短了,后面的附件可能缺失或损坏,丢掉的数据任何工具都找不回来,只能请对方重发。
加密或带数字签名的 Outlook 邮件也打不开。这类邮件收到的是 smime.p7m,不是 winmail.dat,需要收件人的私钥才能解开。
还有些时候里面确实什么都没有。很多 winmail.dat 只装着正文的带格式副本。没有附件时,工具会明确告诉你,不用再疑神疑鬼。
只以富文本形式保存的邮件会丢掉一部分样式,比如字体和颜色,但文字和换行都会保留。如果需要原样的排版,可以下载原始的 .rtf 文件,用 Word 或 LibreOffice 打开。
从源头上解决 winmail.dat
如果总是同一个人发来这种文件,真正的解决办法在对方那边。在 Windows 版 Outlook 里,依次进入文件、选项、邮件,把撰写邮件的格式改成 HTML 就行。只针对一个联系人的话,可以在你的邮箱地址属性里选择以 Internet 格式发送。Exchange 或 Microsoft 365 管理员还可以用 Set-RemoteDomain 命令关闭对外部域的 TNEF。在对方改好设置之前,这个页面能帮你省掉不少来回沟通。