2

好的,只是注意到我的代码中有一些奇怪的行为,只是试图找出问题的根源。在使用 imap 库的时候,想查邮件,是不是每次都要登录看看有没有新邮件?例如

#get_mail function.
 def get_mail():
       conn = imaplib.IMAP4_SSL('imap.gmail.com')
       conn.login(gmail_user_id,gmail_user_pass)
       conn.select('inbox')
       conn.search(None,'(Inbox)')
       return something here

相反,我可以做类似的事情:

#create 'conn' as a global var
conn = imaplib.IMAP4_SSL('imap.gmail.com')
conn.login(gmail_user_id,gmail_user_pass)
conn.select('inbox')
#get_mail function
def get_mail():
       conn.search(None,'(Inbox)')
       return something here

问题是在上面的第二个片段中,如果在创建 conn 之后发送了新邮件,则不会获取该邮件。那么每次运行该功能时我都必须重新登录吗?

4

1 回答 1

0

每次都要登录看看有没有新邮件吗?

是的。

问题是在上面的第二个片段中,如果在创建 conn 之后发送了新邮件,则不会获取该邮件。那么每次运行该功能时我都必须重新登录吗?

通常,您不必再次登录 -IDLE如果 IMAP 服务器支持它,您将使用它。IDLE支持意味着您只需要通过保持连接打开来轮询新消息(因此是“空闲”)。请参阅此链接,该链接描述了如何在循环中侦听新消息。

于 2012-07-09T07:38:15.777 回答