使用python解析outlook.msg文件以获取HTML正文

2024-04-28 17:16:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我查看了StackOverflow,没有找到从msg文件获取HTML正文的满意答案。有人知道如何用Python解析outlook中的.msg文件吗

我尝试过使用extract_msgmsg_parser但没有成功。非常感谢您的帮助

我还使用了chardet.detect来检测编码,但有时它会与一些项目符号(如.·)发生错误

示例代码:

msg = extract_msg.openMsg('test.msg')
msg_obj = MsOxMessage('test.msg')

html = ''
try:
    body_encoding = chardet.detect(msg.htmlBody)['encoding']
    html = msg.htmlBody.decode(body_encoding) if msg.htmlBody else ''
except:
    html = None

Tags: 文件答案testparserhtmlextractbodymsg
1条回答
网友
1楼 · 发布于 2024-04-28 17:16:06

请记住,Outlook创建的MSG文件不包含PR_HTMLMAPI属性(与Outlook存储中的邮件不同);HTML编码在PR_RTF_COMPRESSED属性中,该属性包含压缩的RTF流-查看带有OutlookSpy的MSG文件(单击“更多函数| openimsgisting”)

您可以使用Outlook对象模型调用Namespace.OpenSharedItem,然后读取MailItem.HTMLBody属性,但Outlook对象模型不能在服务(如IIS)中使用,并且会在默认存储中创建临时消息,这意味着Outlook需要先登录配置文件

如果使用Redemption是一个选项(它是一个扩展的MAPI包装器,可以从服务中使用),则可以使用RDOSession.GetMessageFromMsgFile,然后读取RDOMail.HTMLBody属性

相关问题 更多 >