我使用下面的代码阅读了我的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
答案 0 :(得分:1)
你确定发生这一切时你所做的一切吗?据我所知,只使用list()
不应该这样做,但如果您使用retr()
来阅读邮件内容,那么POP3服务器通常会标记邮件,并且不会再将其返回连接不再。
您可以尝试使用IMAP,因为它可以让您更详细地指定行为,例如。您可以告诉它不要将消息标记为已显示,并允许您多次检索它们。 Google支持IMAP,python使用imaplib进行使用。