在本地磁盘中读取带有“.msg”扩展名的已保存电子邮件文件

时间:2014-11-10 07:51:24

标签: python email parsing

如何阅读电子邮件文件(已保存的电子邮件到本地驱动器,扩展名为“.msg”)?

我尝试了这两行,但它没有成功。

msg = open('Departure  HOUSTON EXPRESS  Port  NORFOLK.msg', 'r')
print msg.read()

我在网上搜索了一个答案,其中给出了以下代码:

import email
def read_MSG(file):
    email_File = open(file)
    messagedic = email.Message(email_File)
    content_type = messagedic["plain/text"]
    FROM = messagedic["From"]
    TO = messagedic.getaddr("To")
    sujet = messagedic["Subject"]
    email_File.close()
    return content_type, FROM, TO, sujet


myMSG= read_MSG(r"c:\\myemail.msg")
print myMSG

但是它会出错:

Traceback (most recent call last):
File "C:\Python27\G.py", line 19, in <module>
myMSG= read_MSG(r"c:\\myemail.msg")
File "C:\Python27\G.py", line 10, in read_MSG
messagedic = email.Message(email_File)
TypeError: 'LazyImporter' object is not callable

互联网上的一些回复告诉你最好在解析之前将.msg转换为.eml,但我不确定如何。

读取.msg文件的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您现在拥有的代码看起来完全不适合您尝试完成的任务。你需要解析Outlook&#34; .msg&#34;文件,其中can be done在Python中但未使用email模块。但是,如果你可以使用&#34; .eml&#34;如你所提到的文件,它会更容易,因为email模块可以读取这些文件。

要阅读.eml文件,请参阅email.message_from_file()