Email 我怎样才能立即取回一封邮件并将其标记为可见?

Email 我怎样才能立即取回一封邮件并将其标记为可见?,email,imap,imaplib,Email,Imap,Imaplib,我正在阅读收件箱,获取电子邮件,并将它们标记为已看到 代码如下: self.mail.select() # default=INBOX typ, msgnums = self.mail.uid('search', 'SINCE %s' % today) for uid in msgnums: typ, rfc = self.mail.uid('fetch', num, '(RFC822)') self.mail.uid('STORE', num, '+FLAGS', '(\\

我正在阅读收件箱,获取电子邮件,并将它们标记为已看到

代码如下:

self.mail.select()  # default=INBOX
typ, msgnums = self.mail.uid('search', 'SINCE %s' % today)

for uid in msgnums:
    typ, rfc = self.mail.uid('fetch', num, '(RFC822)')
    self.mail.uid('STORE', num, '+FLAGS', '(\\Seen)')  # This line seems to take some time
然而,一个接一个地获取和存储似乎需要时间

当我删除
'STORE'
行时,程序运行得更快

因此,我想知道是否有一种方法可以在取回邮件时将邮件标记为所见

类似于,
self.mail.uid('fetch',num',(RFC822)',MARK\u AS\u SEEN)


任何想法都值得赞赏。

您发送的精确
fetch
命令已经设置了\seen标志
rfc822
body[]
的别名,表示整个body并设置\seen标志<代码>主体。peek[]表示整个主体,没有标志更改。但是,如果您减少命令的数量,事情通常会进展得更快、更快,因此我建议使用单个命令而不是使用循环来检索所有正文。@arnt谢谢您的评论。你的意思是代码应该改变标志,如图所示?但这并不适合我。。奇怪的我可以用一个附加选项来确认它,而不依赖于默认选项吗?我想您可以使用
body[]
而不是
rfc822
,但是这两个选项都可以工作,除非出现服务器错误。服务器并不是没有bug的,但是这个特定的服务器bug会让人相当惊讶。两者都会带来相同的结果。。。谢谢