我正在从服务器上提取带有附件的电子邮件,并根据某些标准将它们放在文件夹中。这对于使用纯文本编码发送的电子邮件来说没有问题,但我们都知道,如果它们是使用富文本发送的,那么附件会被转换为 winmail.dat 格式。
我尝试使用一个名为 tnefparse 的模块,但没有任何运气,因为我在网上找不到任何文档或示例。
谁能提供一些关于如何使用 tnefparse 或任何其他 Python 模块读取和转换 winmail.dat 附件的示例?
我正在从服务器上提取带有附件的电子邮件,并根据某些标准将它们放在文件夹中。这对于使用纯文本编码发送的电子邮件来说没有问题,但我们都知道,如果它们是使用富文本发送的,那么附件会被转换为 winmail.dat 格式。
我尝试使用一个名为 tnefparse 的模块,但没有任何运气,因为我在网上找不到任何文档或示例。
谁能提供一些关于如何使用 tnefparse 或任何其他 Python 模块读取和转换 winmail.dat 附件的示例?
从命令行使用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))