Python: IMAP connection to gmail returns errors

All of a sudden my code that connects to gmail and checks for unread emails stops working:

Connecting to Inbox..
Error
Traceback (most recent call last):
  File "./run", line 27, in <module>
    mail.login("xxx@dddd.com", "xxxxx123")
  File "/usr/lib/python2.6/imaplib.py", line 498, in login
    typ, dat = self._simple_command('LOGIN', user, self._quote(password))
  File "/usr/lib/python2.6/imaplib.py", line 1060, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "/usr/lib/python2.6/imaplib.py", line 890, in _command_complete
    raise self.abort('command: %s => %s' % (name, val))
imaplib.abort: command: LOGIN => socket error: EOF

      

Here's the code:

#!/usr/bin/env python

import imaplib, re
import os
import time
import socket

imap_host = 'imap.gmail.com'
mail = imaplib.IMAP4_SSL(imap_host, 993)
mail.login("xxxx@xxxx.com", "xxxx")

while True:
    try:
        print 'Connecting to Inbox..'
        mail.select("inbox") # connect to inbox.
        result, data = mail.uid('search', None, 'UNSEEN')
        uid_list = data[0].split()
        print len(uid_list), 'Unseen emails.'
        if len(uid_list) > 20:
         os.system('heroku restart --app xxx-xx-203')
        time.sleep(30)
    except:
        print 'Error'
        time.sleep(120)
        imap_host = 'imap.gmail.com'
        mail = imaplib.IMAP4_SSL(imap_host, 993)
        mail.login("xxx@xxx.com", "xxxx")
        pass

      

And I also get this error:

Traceback (most recent call last):
  File "./run", line 10, in <module>
    mail.login("xxx@xxx.com", "xxx")
  File "/usr/lib/python2.6/imaplib.py", line 498, in login
    typ, dat = self._simple_command('LOGIN', user, self._quote(password))
  File "/usr/lib/python2.6/imaplib.py", line 1060, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "/usr/lib/python2.6/imaplib.py", line 893, in _command_complete
    self._check_bye()
  File "/usr/lib/python2.6/imaplib.py", line 808, in _check_bye
    raise self.abort(bye[-1])
imaplib.abort: [UNAVAILABLE] Temporary System Error

      

+3


source to share


2 answers


Weird. I checked the exact code for you and connected to gmail just fine. I suggest trying to connect from a different system.



If you don't have access to any other systems, I can give you an account for you if you want.

0


source


Ultimately, this will definitely happen. The solution is to catch the interrupt exception and reinitialize your imap connection.



0


source







All Articles