import serial
import imaplib
from time import sleep
IMAP_SERVER='imap.gmail.com'
IMAP_PORT=993
ser= serial.Serial ('/dev/ttyACM0',9600)
while True:
M = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
rc, resp = M.login('user@gmail.com', 'Password')
print rc, resp
M.select()
for msg_num in M.search("INBOX", "UNDELETED")[1][0].split():
msg = M.fetch('1', '(BODY.PEEK[TEXT])')
try:
String = msg[1][0][1][139:148]
except TypeError:
continue
print String
if String == "This is just a test...":
ser.write('0')
sleep(1)我是python编程的初学者,上面的python代码是我想要做的程序的一部分。当我在终端中运行它时,我得到的响应是我已经验证了我的帐户,然后它显示了139和161个字符之间的消息,在示例电子邮件中如下所示:
This is just a test...这将在终端中打印出来。在程序检查我的电子邮件几次之后,这个错误就出来了:
Traceback (most recent call last):
File "/home/wilson/Desktop/Best_Gmail_yet _Dont_touch.py", line 11, in <module>
rc, resp = M.login('user@gmail.com', 'password')
File "/usr/lib/python2.6/imaplib.py", line 500, in login
raise self.error(dat[-1])
imaplib.error: [ALERT] Web login required: http://mail.google.com/support /bin/answer.py?answer=78754 (Failure)有没有什么办法可以帮上忙,有没有其他方法可以写给连载,提前谢谢!
发布于 2011-03-30 05:43:28
从错误消息url (http://mail.google.com/support/bin/answer.py?answer=78754):
确保您的邮件客户端未设置为过于频繁地检查新邮件。如果您的邮件客户端每10分钟检查一次以上的新邮件,您的客户端可能会重复请求您的用户名和密码。
我猜你连接服务器的频率太高了,gmail会起疑心。
您似乎还打开了多个imap连接,但没有关闭任何连接。我不知道你到底想做什么,但我猜还有一种更简约的方式,可能只涉及你时不时维护和轮询的一个连接。
https://stackoverflow.com/questions/5479240
复制相似问题