在第二次运行脚本时,不会从邮件服务器检索邮件

时间:2012-10-19 22:38:49

标签: python pop3

我使用下面的代码阅读了我的Gmail帐户中的邮件。

import poplib
pop_conn = poplib.POP3_SSL('pop.gmail.com')
pop_conn.user('user')             # result: '+OK send PASS'
pop_conn.pass_('password')        # result: '+OK Welcome.'
print pop_conn.list()[1]
pop_conn.quit()

它按预期显示了1条消息 但是,如果我第二次运行此脚本,则会得到0条消息。在服务器上,消息仍然存在并且未读 如何让第二次运行脚本的所有消息?

对我而言,它表现为电子邮件客户端,不会两次下载相同的邮件。是否有一些标志迫使程序再次下载所有内容? 我在ubuntu 12.10上使用python 2.7.x

1 个答案:

答案 0 :(得分:1)

你确定发生这一切时你所做的一切吗?据我所知,只使用list()不应该这样做,但如果您使用retr()来阅读邮件内容,那么POP3服务器通常会标记邮件,并且不会再将其返回连接不再。

您可以尝试使用IMAP,因为它可以让您更详细地指定行为,例如。您可以告诉它不要将消息标记为已显示,并允许您多次检索它们。 Google支持IMAP,python使用imaplib进行使用。