我查看了StackOverflow,没有找到从msg
文件获取HTML正文的满意答案。有人知道如何用Python解析outlook中的.msg文件吗
我尝试过使用extract_msg
和msg_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
请记住,Outlook创建的MSG文件不包含
PR_HTML
MAPI属性(与Outlook存储中的邮件不同);HTML编码在PR_RTF_COMPRESSED
属性中,该属性包含压缩的RTF流-查看带有OutlookSpy的MSG文件(单击“更多函数| openimsgisting”)您可以使用Outlook对象模型调用Namespace.OpenSharedItem,然后读取MailItem.HTMLBody属性,但Outlook对象模型不能在服务(如IIS)中使用,并且会在默认存储中创建临时消息,这意味着Outlook需要先登录配置文件
如果使用Redemption是一个选项(它是一个扩展的MAPI包装器,可以从服务中使用),则可以使用RDOSession.
GetMessageFromMsgFile
,然后读取RDOMail.HTMLBody
属性相关问题 更多 >
编程相关推荐