Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 第二次运行该脚本时,不会从邮件服务器检索邮件_Python_Pop3 - Fatal编程技术网

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

Python 第二次运行该脚本时,不会从邮件服务器检索邮件,python,pop3,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条消

我从我的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条消息。在服务器上,邮件仍然存在且未读。
如何让所有的消息也再次运行脚本

对我来说,它就像一个电子邮件客户端,不会下载同一封邮件两次。是否有一些标志强制程序再次下载所有内容?
我在Ubuntu12.10上使用Python2.7.x,你确定事情发生时你就是这么做的吗?据我所知,仅仅使用
list()
不应该这样做,但是如果您也使用
retr()
来读取消息内容,那么POP3服务器通常会标记消息,并且在进一步连接时不会再返回消息


您可以尝试改用IMAP,因为它允许您更详细地指定行为,例如,您可以告诉它不要将消息标记为可见,并允许您多次检索它们。谷歌支持IMAP,python有imaplib来使用它。

你确定事情发生时你就是这么做的吗?据我所知,仅仅使用
list()
不应该这样做,但是如果您也使用
retr()
来读取消息内容,那么POP3服务器通常会标记消息,并且在进一步连接时不会再返回消息


您可以尝试改用IMAP,因为它允许您更详细地指定行为,例如,您可以告诉它不要将消息标记为可见,并允许您多次检索它们。谷歌支持IMAP,python有imaplib来使用它。

也许你可以详细说明一下,提供更多的上下文(例如,哪个python版本等)。这段代码对我来说很好:我每次都收到相同的电子邮件列表。我试过使用python 2.7.x.@mjv感谢您让我知道它在您的PC上工作。它变得越来越有趣。我在Ubuntu12.10上使用Python2.7.x,你可以详细说明一下,提供更多的上下文(例如,哪个python版本等)。这段代码对我来说很好:我每次都收到相同的电子邮件列表。我试过使用python 2.7.x.@mjv感谢您让我知道它在您的PC上工作。它变得越来越有趣。我在Ubuntu12.10上使用Python2.7.x,在pop3失败后,我制作了一个有效的imap解决方案。我在这里问它,是为了理解它为什么会失败。现在,我试着在同一台机器上运行这个脚本,但现在它每次都能正常工作,这对我来说并不清楚。我不明白。在我发布问题的时候,我可能尝试过retr(),但后来我做了几次:发送消息,运行上面的代码段两次(中间没有任何内容),第一次收到消息,第二次没有任何内容。我这边投赞成票,但我会等着接受,以防有人提出100%的解决方案。那当然很奇怪。在这种情况下,我希望有人能想出更好的解释;现在它也让我烦恼在pop3失败后,我制定了一个有效的imap解决方案。我在这里问它,是为了理解它为什么会失败。现在,我试着在同一台机器上运行这个脚本,但现在它每次都能正常工作,这对我来说并不清楚。我不明白。在我发布问题的时候,我可能尝试过retr(),但后来我做了几次:发送消息,运行上面的代码段两次(中间没有任何内容),第一次收到消息,第二次没有任何内容。我这边投赞成票,但我会等着接受,以防有人提出100%的解决方案。那当然很奇怪。在这种情况下,我希望有人能想出更好的解释;现在它也让我烦恼