Непрочитанные электронные письма из аккаунта Gmail - PullRequest
1 голос
/ 27 февраля 2012

У меня есть скрипт на 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. Я могукажется, не понимаю, почему.

1 Ответ

0 голосов
/ 05 апреля 2012

Насколько я могу судить, вы постоянно получаете одно дополнительное невидимое письмо.Убедитесь, что в вашей учетной записи есть несколько непрочитанных писем.замените:

print len(uid_list), 'Unseen emails.'

на

print len(uid_list)-1, 'Unseen emails.'

это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...