使用imaplib获取邮件但不标记为已读
我想从用户的收件箱中解析一些邮件,但当我这样做的时候:
typ, msg_data = imap_conn.fetch(uid, '(RFC822)')
邮件会被标记为已读。这并不是我想要的功能。你知道怎么才能让邮件保持之前的状态,无论是已读还是未读吗?
4 个回答
3
你可以使用 (RFC822.PEEK)
作为“消息部分”的参数,这个说法来源于 RFC 1730(我没有确认哪些服务器实际上正确实现了这个功能,但对它们来说似乎并不难)。
24
下面的代码应该可以正常运行:
typ, msg_data = imap_conn.fetch(uid, '(BODY.PEEK[HEADER])')
或者你也可以用 BODY.PEEK[TEXT]
这样的方式,等等。
46
你在选择文件夹的时候,也可以把 read_only
设置为 true,这样就表示这个文件夹是只读的。
imap_conn.select('Inbox', readonly=True)