为什么不能将我的电子邮件下载到本地磁盘来解析它?

时间:2015-01-12 12:20:13

标签: python email

我已登录我的Gmail帐户并将收件箱邮箱中的第二封电子邮件下载到/home/mymail

import imaplib
import email
user="yyyy"
password="xxxx"
con=imaplib.IMAP4_SSL('imap.gmail.com')
con.login(user,password)
con.select("INBOX")[1][0]  
result,data=con.fetch(b'2', '(RFC822)')
with open("/home/mymail","w") as f:
    f.write(data[0][1])

现在我想从本地文件中解析它。

import email
s=email.message_from_file("/home/mymail")

AttributeError:'str'对象没有属性'read'。

但是email.message_from_string(data[0][1])["Subject"]工作正常,下载到本地磁盘中的文件时无法解析。

1 个答案:

答案 0 :(得分:1)

该函数需要一个file对象,而不是只有文件名的str

message_from_file(fp, *args, **kws)
    Read a file and parse its contents into a Message object model.

尝试制作一个文件句柄,就像你写入文件一样,然后就可以了。

import email
with open("/home/mymail", "r") as f:
    s = email.message_from_file(f)