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

why can't download my email into local disk to parse it?

我已经登录了我的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"]没问题,下载到本地盘的文件中无法解析

该函数需要一个 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)