28

我想解析来自用户收件箱的一些电子邮件,但是当我这样做时:

typ, msg_data = imap_conn.fetch(uid, '(RFC822)')

它将电子邮件标记为已读或已读。这不是所需的功能。你知道我怎样才能让电子邮件保持以前的凝视状态,要么看到要么没看到?

4

4 回答 4

44

read_only选择文件夹时,您也可以设置为 true:

imap_conn.select('Inbox', readonly=True)
于 2010-10-18T01:38:49.533 回答
23

以下应该有效:

typ, msg_data = imap_conn.fetch(uid, '(BODY.PEEK[HEADER])')

BODY.PEEK[TEXT]

于 2010-07-19T18:15:26.403 回答
3

(RFC822.PEEK)根据RFC 1730 ,您可以将其用作“消息部分”参数(我尚未验证哪些服务器实际上正确实现了该参数,但它们似乎并不难)。

于 2010-07-19T17:58:03.920 回答
0

您可以使用 imap_tools 包: https ://pypi.org/project/imap-tools/

from imap_tools import MailBox, Q

# get list of email subjects from INBOX folder
with MailBox('imap.mail.com').login('test@mail.com', 'password') as mailbox:
    # mark_seen=False - not mark emails as seen on fetch
    subjects = [msg.subject for msg in mailbox.fetch(mark_seen=False)]
于 2019-10-09T13:08:49.940 回答