变量没有更新,应该更新

时间:2019-06-16 17:34:18

标签: python while-loop gmail

我正在尝试创建一个程序,其中使用了名为PGM的模块。这基本上是一个gmail模块。当我获取电子邮件ID的列表,然后获取ID的数量以获取收件箱中的电子邮件数量时,它可以正常工作,但是当我放入无限循环以检查是否有新邮件时,这就是问题电子邮件,当我向收件箱发送电子邮件时,它不会更新号码。它保持打印相同的值。

这是代码。

import PGM,time
from playsound import playsound

mail = PGM.MailReader('username', 'password')

def sound():
    playsound('youve-got-mail-sound.mp3')




def countList():
    List = mail.get_mail_ids()
    count = len(List)
    tracker = count
    return tracker

countList()

while True:
    countList()
    print(countList())
    time.sleep(1)


1 个答案:

答案 0 :(得分:3)

纯估计:

可能是每次检查都应重新打开imap连接。

您自己尝试时,每次都会打开一个新连接,并获得最新结果。

在循环时,将使用相同的连接,并且将获得相同的结果,因为imaplib不会再次从服务器获取结果。

您可以尝试以下方法:

while 1:
    mail = PGM.MailReader('username', 'password')
    # rest of your code logic

只是看看它是否有效。