每次我在 GMail 中收到一封新电子邮件时,我一直在做一个小型 Arduino 项目来激活带有标志的伺服。我想登录 Gmail,检查是否有新的电子邮件,然后每隔 x 秒再检查一次。
我发现第一个连接很好,但在那之后,我收到一个错误,在 AUTH 模式下我不能使用 LOGIN ,只有 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() 一次,然后在循环中使用另一个命令,或者我可以在检查后注销,然后每次重新登录。
想法?建议?