忍受 winmail.dat

生存在满是 outlook 的世界里,难免要应对 winmail.dat。

什么是 winmail.dat,mozilla 知识库的这篇 wiki 已经说的很清楚,而且也给出了一些解决方案。之所以还有这篇文章,自然是遇到了问题。

同事发来邮件里的 winmail.dat,LookOut 插件解析出错(thunderbird 3.0 的话暂需到这里下载试验版本);tnef 在解析过程中会丢掉文件名和 MIME 信息,导致不仅处理同名十分繁琐,而且解析出来也还要猜文件类型,很是麻烦。

好在跟 tnef 类似的工具还有一个 ytnef,aur 可以直接安装,虽然似乎比 tnef 还要久不更新但试用下来却效果很好。唯独解析出来的文件名都还是 gbk 编码,如果你也用 utf8 的 locale 的话,可能还需要 convmv 一下。这里给一个自用脚本,将 winmail.dat 自动解析到 ~/desktop/winmail/YYYYMMDD_HHMMSS 里面,设定 thunderbird 用这个脚本处理所有 .dat 文件,世界可以变得美好一点了。

#!/bin/bash

TMP=/tmp/winmail/
LOCATION=~/desktop/winmail/

rm -rf $TMP
mkdir -p $TMP

ytnef -F -f $TMP $1
convmv -f gbk -t utf-8 -r --qfrom --notest $TMP

mkdir -p $LOCATION
mv $TMP $LOCATION/`date +%Y%m%d_%H%M%S`


p.s. ytnef 的返回值很诡异,没见什么异常返回值居然也不是 0。

评论