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
私は何をしていますここで間違っている?
close_imap '' self.imap.select( 'INBOX') 'のトレースバック'ファイル "/path/to/my/python/project/emailing/Mailer.py" 55行目を見てください。 'self.imap.select( 'INBOX')行にエラーが追加されました。この行は、あなたが指定した例にはありません。 2つの解決策:あなたは苦労している実際のコードを与えていないか、このスクリプトを実行していませんが、もう1つ(pycの問題?)。 – Arount
私は間違ったstacktraceを追加しました。別のスタックトレースで質問を更新しました。申し訳ありませんが、答えは – toom
です。あなたは接続を2回クローズしたと思いますが、すべてのコードを公開できますか? – Arount