You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.6解析.msg邮件文件失败,无法获取头部信息求助

问题分析与解决方案

嘿,我来帮你捋捋这个问题——你用Python标准库的email.parser.Parser来读.msg文件,肯定拿不到内容的,原因很简单:这个工具根本不支持微软Outlook的.msg格式!

核心原因

.msg是微软Outlook专属的二进制OLE格式邮件文件,和标准的MIME邮件(比如常见的.eml文件)结构完全不一样。而email.parser.Parser只能解析遵循RFC规范的纯文本/MIME邮件,用它来读.msg就像用记事本打开Excel文件,自然读不出有效信息,返回None也就不奇怪了。

解决方法:用专门的.msg解析库

Python生态里有几个专门处理.msg文件的第三方库,给你推荐两个最实用的:

1. msg-extractor(简单易上手,功能全)

先安装库:

pip install msg-extractor

然后用下面的代码提取信息:

from extract_msg import Message

# 加载目标.msg文件
msg = Message(r'E:/Ratan/msg_files/Test1.msg')

# 提取核心邮件字段
print('To:', msg.to)
print('From:', msg.sender)
print('Subject:', msg.subject)

# 还能轻松提取正文、附件等内容
# print('邮件正文:', msg.body)
# print('附件列表:', msg.attachments)

2. outlook-message-parser(轻量专注核心字段)

如果只需要提取收件人、发件人、主题这些核心信息,这个轻量库更合适:

pip install outlook-message-parser

示例代码:

from outlook_message_parser import parse_msg

# 解析.msg文件,返回字典格式的信息
msg_data = parse_msg(r'E:/Ratan/msg_files/Test1.msg')

print('To:', msg_data['to'])
print('From:', msg_data['from'])
print('Subject:', msg_data['subject'])

用这两个库中的任意一个,都能正常提取到.msg文件里的实际内容啦。

内容的提问来源于stack exchange,提问作者Ratan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:19:45