3

突然、gmail に接続して未読メールをチェックするコードが機能しなくなりました。

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

コードは次のとおりです。

#!/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

また、このエラーもよく発生します。

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
4

2 に答える 2

0

これは最終的には必ず発生します。解決策は、中止例外をキャッチし、imap接続を再初期化することです。

于 2012-04-14T05:58:19.833 に答える
0

変。正確なコードを実行し、gmail に問題なく接続しました。別のシステムから接続することをお勧めします。

他のシステムにアクセスできない場合は、必要に応じて私のアカウントを試してみてください。

于 2012-04-05T00:38:03.297 に答える