2016-11-30 15 views
0

自分のメールアカウントでいくつかのタスクを自動化するPythonスクリプトを作成しました。だから、私は自分のヤフーメールアカウントにログインし、読んだり、(imap経由で)削除したり、(smtp経由で)メールを送ることができます。その後、私はログアウトしたい。しかし、私は修復する方法がわからないこれは、このエラーを取得しています:Python imaplib:imapからログアウトできない

Exception in close_imap 
Traceback (most recent call last): 
    File "/Users/Tom/MeineDaten/Programmieren/Sportwetten/Tipico/Report-Gambling-Apps/emailing/Mailer.py", line 55, in close_imap 
    self.imap.close() 
    File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/imaplib.py", line 445, in close 
    typ, dat = self._simple_command('CLOSE') 
    File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/imaplib.py", line 1180, in _simple_command 
    return self._command_complete(name, self._command(name, *args)) 
    File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/imaplib.py", line 928, in _command 
    ', '.join(Commands[name]))) 
imaplib.IMAP4.error: command CLOSE illegal in state LOGOUT, only allowed in states SELECTED 

そして、これは、対応するコードです:

これは何が起こるかです

import imaplib 

...other code here... 

def close_imap(self): 
    if self.imap is None: 
     print("close_imap: self.imap is None. No further action taken. Returning.") 
     return 
    try: 
     self.imap.close() 
     self.imap.logout() 
    except Exception: 
     print("Exception in close_imap") 
     print(str(traceback.format_exc())) 
     pass 

私は何をしていますここで間違っている?

+0

close_imap '' self.imap.select( 'INBOX') 'のトレースバック'ファイル "/path/to/my/python/project/emailing/Mailer.py" 55行目を見てください。 'self.imap.select( 'INBOX')行にエラーが追加されました。この行は、あなたが指定した例にはありません。 2つの解決策:あなたは苦労している実際のコードを与えていないか、このスクリプトを実行していませんが、もう1つ(pycの問題?)。 – Arount

+0

私は間違ったstacktraceを追加しました。別のスタックトレースで質問を更新しました。申し訳ありませんが、答えは – toom

+1

です。あなたは接続を2回クローズしたと思いますが、すべてのコードを公開できますか? – Arount

答えて

0

フォルダを閉じようとしていますが、フォルダを選択していません。

は、これは2が考えるに起因することがあります

  • あなたは既にフォルダを閉じて、このセッション
  • でフォルダを選択したことはありませんが、あなたはそれをもう一度クローズしようとしています。

フォルダを一度閉じる必要があります。

注::ログアウトする前にIMAPプロトコルでフォルダを閉じる必要はありません。

関連する問題