用python编写的tnef解码库,没有外部依赖项
tnefparse的Python项目详细描述
tnefparse-tnef解码和附件提取
这是一个纯python库,用于解码微软的传输中性封装格式(tnef),用于python 版本2.7、3.5+和Pypy。有关tnef的更多信息,请参见 wikipedia。完整的tnef规范 也可用作PDF download。
提供了一个tnefparse
命令行实用程序,用于列出tnef文件的内容,提取附件
在里面找到,等等:
usage: tnefparse [-h] [-o] [-a] [-p PATH] [-b] [-hb] [-l LEVEL] [-c] file [file ...] Extract TNEF file contents. Show this help message if no arguments are given. positional arguments: file space-separated list of paths to the TNEF files optional arguments: -h, --help show this help message and exit -o, --overview show (possibly long) overview of TNEF file contents -a, --attachments extract attachments, by default to current dir -p PATH, --path PATH optional explicit path to extract attachments to -b, --body extract the body to stdout -hb, --htmlbody extract the HTML body to stdout -rb, --rtfbody extract the RTF body to stdout -l LEVEL, --log LEVEL set log level to DEBUG, INFO, WARN or ERROR -c, --checksum calculate checksums (off by default)
该库还可以用作需要解析tnef的应用程序的基础。要分析tnef附件,请运行例如:
>>> from tnefparse import TNEF >>> with open("tests/examples/one-file.tnef", "rb") as tneffile: ... tnefobj = TNEF(tneffile.read())
然后,解析的附件内容可用作tnef对象属性:
- 签名-tnef文件签名
- 密钥-在使用tnef实现生成tnef流之前由启用tnef的传输生成
- 代码页-Windows代码页字符串
- 对象-一组tnefobject实例
- 附件-一组tnefattachment实例
- mapiprops-由tnefmapi_属性表示的mapi属性的集合实例
- 正文-消息正文(可能包含HTML和RTF)
- html body-仅包含html消息正文的字符串
- rtf body-只有rtf主体
上面的一些属性可能是空的,这取决于分析的附件中包含的内容。
使用python setup.py test
运行测试。
欢迎提出问题和请求。请始终提供一个示例tnef文件,如果可能的话,该文件可用于演示错误或所需的行为。
注意:如果您了解tnef和/或mime内部结构,或者只是需要这个包并希望帮助维护它,那么我愿意授予您提交权限。请告诉我。
tnefparse 1.3.0(2018-12-01)
- 放弃python 2.6&3.3支持
- python 2/3兼容性修复程序
- 更多测试和示例文件(jrideout)
- 全面改进测试和开始跟踪覆盖范围
- 大量的解析改进(jrideout)
- 将一些不必要的警告转换为调试消息
- 添加tnefparse-p–设置附件提取路径的路径选项
- 支持更多MAPI(PIDTag)属性(Jrideout)
- 支持RTF正文提取(Jrideout)
- 支持在msgprops(jrideout)中提取顶级对象属性
- util.raw_mapi&tnefparse.parsefile函数在1.3之后将被弃用
t参考1.2.3,2018年11月14日
- 杂项修复
TNEFPARSE 1.2.22017年
- 有
tNEF init在无效TNEF签名上引发ValueError,而不是调用sys .Exit() - parsefile便利功能不应期望self参数,已删除
- 其他杂项修复
tnefparse 1.2.11913年
- Python3兼容性;测试通过Python2.6/2.7/3.2/3.3
- 将包添加到travis ci
- 添加tox.ini以使用https://testrun.org/tox
t参考2013年1月2日
- 性能改进和错误修复(dave baggett)
- 添加到压缩函数中,用于将tnef附件转换为压缩附件(dave baggett)
- tnefparse现在在arcode的inky电子邮件客户端中使用
tnefparse 1.1.12012年8月(未发布)
- 修复了导致“tnefparse”命令行调用失败的入口点错误
t参考1.12012年3月1日
- 重新打包并重命名库
- 代码移到github
- 使用stdlib日志模块
- 对纯python代码的进一步错误修复和增强
- 添加COM命令行脚本
- 删除unix tnef命令行工具包装器
Pytnef 0.2.1-Novell,约2010年
- 对纯python代码(tom doman)的错误修复/增强
Pytnef 0.2,约2005年
- 为unix tnef命令行工具(petri-savolainen)添加了一个包装器
- 纯python代码还不是很有用
Pytnef 0.1-约2005年
- 作为ruby tnef解码器的转换创建的第一个版本(纯python) 作者Trevor Scheroeder(Petri Savolainen)