我已登录我的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"]
工作正常,下载到本地磁盘中的文件时无法解析。
答案 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)