Как мне сначала войти в систему, а затем продолжить проверять почту через imaplib и python - PullRequest
0 голосов
/ 15 сентября 2011

Я работал над небольшим проектом Arduino, чтобы активировать сервопривод с флагом каждый раз, когда я получаю новое электронное письмо в GMail.Я хотел бы войти в Gmail, проверить, есть ли у меня новое электронное письмо, а затем проверять каждые x секунд.

Я обнаружил, что первое соединение работает нормально, но после этого я получаю сообщение об ошибке, что я не могу использовать LOGIN в режиме AUTH, только NONAUTH .Это говорит о том, что, как только я войду в сеанс, GMail не примет метод.

Вот сценарий:

import serial
import time
import imaplib, re
import getpass

user = raw_input("Enter your GMail username:")
pwd = getpass.getpass("Enter your password: ")
ser = serial.Serial('/dev/tty.usbmodemfa141', 9600)
print "Starting on " +ser.name;
conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
while (True):
    conn.login(user,pwd)
    unreadCount = int(re.search("UNSEEN (\d+)", conn.status("INBOX", "(UNSEEN)")[1][0]).group(1))
    if(unreadCount > 0):
        print str(unreadCount) + " new mails!"
        ser.write("M")
    else:
        print "no mail :("
        ser.write("N")
    time.sleep(5)

Я думаю, что я использую conn.login() один раз, а затем еще одна команда в цикле, ИЛИ Я мог выйти из системы после проверки, а затем снова входить в систему каждый раз.

Мысли?Предложения?

1 Ответ

0 голосов
/ 16 сентября 2011

Вам нужно вывести строку «conn.login (user, pwd)» из цикла while. Помещение в качестве строки перед циклом while должно работать нормально.

...