Как мне сначала войти в систему, а затем продолжить проверять gmail через imaplib и python
Я работал над небольшим проектом Arduino, чтобы активировать сервопривод с флагом каждый раз, когда я получаю новое электронное письмо в GMail. Я хочу войти в Gmail, проверить, есть ли у меня новое электронное письмо, а затем проверять каждые x секунд.
Я обнаружил, что первое соединение проходит нормально, но после этого я получаю сообщение об ошибке, что я не могу использовать ЛОГИН в режиме 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 ответ
Вам нужно вывести строку "conn.login(user,pwd)" из цикла while. Помещение в качестве строки перед циклом while должно работать нормально.