繁体   English   中英

我如何先登录然后继续通过imaplib和python检查gmail

[英]How do I first login then continue to check gmail via imaplib and python

每当我在GMail中收到新电子邮件时,我就一直在研究一个小型Arduino项目,以激活带有标记的伺服器。 我想登录Gmail,检查是否有新电子邮件,然后每隔x秒检查一次。

我发现,第一个连接运行良好,但是之后,出现一个错误, 处于AUTH模式时,只能使用NONAUTH,不能使用LOGIN 这表明一旦登录会话,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(),然后再在循环中使用另一个命令,或者我可以在检查后注销,然后每次重新登录。

有什么想法吗? 有什么建议吗?

您需要从while循环中删除“ conn.login(user,pwd)”行。 将其放在while循环之前的行应该可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM