如何使用python解析winmail.dat

CCK*_*CKx 6 python winmail.dat tnef

我正在通过服务器上的附件提取电子邮件,并根据特定条件将它们放在文件夹中.对于使用纯文本编码发送的电子邮件,这没有问题,但是我们都知道如果它们是使用富文本发送的,那么附件将转换为winmail.dat格式.

我尝试过使用名为tnefparse的模块,但由于我在网上找不到任何文档或示例,所以没有运气.

任何人都可以提供一些关于如何使用tnefparse或任何其他Python模块读入和转换winmail.dat附件的示例吗?

amo*_*mon 8

从命令行使用tnefparse非常容易

首先使用pip安装

pip install tnefparse
Run Code Online (Sandbox Code Playgroud)

从 winmail.dat 中提取附件只需运行

tnefparse -a winmail.dat
Run Code Online (Sandbox Code Playgroud)

如果你想把这个库集成到你的 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))
Run Code Online (Sandbox Code Playgroud)