Python: ошибка Imaplib - PullRequest
       87

Python: ошибка Imaplib

0 голосов
/ 30 марта 2011
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)

У кого-нибудь есть идеи, чтобы помочь, и есть ли другой способ написать в сериал, заранее спасибо!

1 Ответ

3 голосов
/ 30 марта 2011

Из сообщения об ошибке url (http://mail.google.com/support/bin/answer.py?answer=78754):

Убедитесь, что ваш почтовый клиент не установлен слишком часто проверять наличие новой почты. Если Ваш почтовый клиент проверяет наличие новых сообщения более одного раза каждые 10 минут, ваш клиент может повторно запросите ваше имя пользователя и пароль.

Полагаю, вы слишком часто подключаетесь к серверу, а gmail становится подозрительным.

Вы также, кажется, открываете несколько подключений imap, не закрывая ни одно из них. Я не знаю точно, что вы пытаетесь сделать, но я предполагаю, что есть более экономный способ, возможно, включающий только одно соединение, которое вы поддерживаете и опрашиваете время от времени.

...