如何用Python解析winmail.dat
我正在从服务器上提取带附件的邮件,并根据一些标准把它们放到不同的文件夹里。对于那些用纯文本格式发送的邮件,这没什么问题。但是大家都知道,如果邮件是用富文本格式发送的,附件就会被转换成winmail.dat格式。
我试过使用一个叫做tnefparse的模块,但没有成功,因为我在网上找不到任何文档或示例。
有没有人能提供一些示例,教我如何使用tnefparse或者其他Python模块来读取和转换winmail.dat附件?
1 个回答
13
从命令行使用 tnefparse 非常简单。
首先,你需要通过 pip 安装它。
pip install tnefparse
要从 winmail.dat 文件中提取附件,只需运行以下命令:
tnefparse -a winmail.dat
如果你想在自己的 Python 代码中使用这个库,只需参考 tnefparse 的命令行实现,这个代码非常容易理解。总之,这里有一段示例代码,可以将 winmail.dat 中的所有附件提取到当前工作目录:
import sys
from tnefparse.tnef import TNEF, TNEFAttachment, TNEFObject
from tnefparse.mapi import TNEFMAPI_Attribute
t = TNEF(open("winmail.dat").read(), do_checksum=True)
for a in t.attachments:
with open(a.name, "wb") as afp:
afp.write(a.data)
sys.exit("Successfully wrote %i files" % len(t.attachments))