我有一个python脚本如下:
import imaplib, re
import os
import time
import socket
imap_host = 'imap.gmail.com'
mail = imaplib.IMAP4_SSL(imap_host)
mail.login("user", "pass")
mail.select("inbox") # connect to inbox.
while True:
try:
result, data = mail.uid('search', None, 'UNSEEN')
uid_list = data[0].split()
print len(uid_list), 'Unseen emails.'
if len(uid_list) > 20:
os.system('heroku restart --app xxx')
time.sleep(60)
except KeyboardInterrupt:
print 'Quitting'
pass
目标是检查有多少未读电子邮件并重新启动Heroku服务器。问题是它似乎不能很好地工作。
~# python gmail_new.py
1 Unseen emails.
0 Unseen emails.
当我第一次开始时,它有效(1个未读电子邮件),但第二次应该返回20而不是0.接下来也是0,从不超过0.我似乎无法弄清楚这是为什么。
答案 0 :(得分:-1)
据我所知,您会一直收到一封额外看不见的电子邮件。 确保您的帐户中有一些未读邮件。 替换:
print len(uid_list), 'Unseen emails.'
带
print len(uid_list)-1, 'Unseen emails.'
这应该有效。