2013-06-04 6 views
1

안녕하세요 갑자기 이전에 제대로 작동 한 일부 코드에서 imaplib를 사용하는 중에 오류가 발생했습니다.python imaplib - 'unexpected repsonse'오류가 발생했습니다.

import imaplib 
m = imaplib.IMAP4('myserver','port') 
m.login(r'username','password') 
m.select() 

나에게 오류

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/imaplib.py", line 649, in select 
    typ, dat = self._simple_command(name, mailbox) 
    File "/usr/lib/python2.7/imaplib.py", line 1070, in _simple_command 
    return self._command_complete(name, self._command(name, *args)) 
    File "/usr/lib/python2.7/imaplib.py", line 899, in _command_complete 
    raise self.abort('command: %s => %s' % (name, val)) 
imaplib.abort: command: SELECT => unexpected response: '* 1520 EXISTS' 

나는 그것이 무엇을 의미하는지 모르겠어요을 제공합니다. 그렇지 않으면 이메일이 정상적으로 수신되며 davmail을 서버로 사용하고 있습니다.

프로그램 전체가 특정 폴더에 특정 이름의 첨부 파일을 저장합니다.

나는 그것을 극복하고 분명히 넘어지는 곳인 m.select()입니다.

이 프로그램은 최근까지도 아주 잘 작동했습니다.

내가 뭘 잘못하고 있고, 어떻게 수정합니까?

** UPDATE **

지금

Bug report on Python

데이비드에서 파이썬-DEV에서 버그를 제기했습니다

>>> import imaplib 
>>> m = imaplib.IMAP4('server','port') 
>>> Debug=4 
>>> m.debug 
0 
>>> m.debug=4 
>>> m.debug 
4 
>>> m.login(r'username','password') 
    01:26.55 > HLFI1 LOGIN "username" "password" 
    01:30.76 < HLFI1 OK Authenticated 
('OK', ['Authenticated']) 
>>> m.list() 
    01:56.33 > HLFI2 LIST "" * 
    02:00.04 < * LIST (\HasNoChildren) "/" "Trash/Sent Messages" 
    02:00.04 < * LIST (\HasNoChildren) "/" "Sync Issues/Server Failures" 
    02:00.04 < * LIST (\HasNoChildren) "/" "Sync Issues/Local Failures" 
    02:00.04 < * LIST (\HasNoChildren) "/" "Sync Issues/Conflicts" 
    02:00.04 < * LIST (\HasChildren) "/" "Sync Issues" 
    02:00.04 < * LIST (\HasNoChildren) "/" "Junk E-mail" 
    02:00.04 < * LIST (\HasNoChildren) "/" "Drafts" 
    02:00.04 < * LIST (\HasChildren) "/" "Trash" 
    02:00.04 < * LIST (\HasNoChildren) "/" "Sent" 
    02:00.04 < * LIST (\HasNoChildren) "/" "Outbox" 
    02:00.04 < * LIST (\HasNoChildren) "/" "INBOX" 
    02:00.04 < HLFI2 OK LIST completed 
('OK', ['(\\HasNoChildren) "/" "Trash/Sent Messages"', '(\\HasNoChildren) "/" "Sync Issues/Server Failures"', '(\\HasNoChildren) "/" "Sync Issues/Local Failures"', '(\\HasNoChildren) "/" "Sync Issues/Conflicts"', '(\\HasChildren) "/" "Sync Issues"', '(\\HasNoChildren) "/" "Junk E-mail"', '(\\HasNoChildren) "/" "Drafts"', '(\\HasChildren) "/" "Trash"', '(\\HasNoChildren) "/" "Sent"', '(\\HasNoChildren) "/" "Outbox"', '(\\HasNoChildren) "/" "INBOX"']) 
>>> m.select() 
    02:21.37 > HLFI3 SELECT INBOX 
    02:30.87 < * 1548 EXISTS 
    02:30.87 last 4 IMAP4 interactions: 
    00:16.73 < * OK [CAPABILITY IMAP4REV1 AUTH=LOGIN MOVE] IMAP4rev1 DavMail 4.3.0-2125 server ready 
    00:16.73 > HLFI0 CAPABILITY 
    00:16.74 < * CAPABILITY IMAP4REV1 AUTH=LOGIN MOVE 
    00:16.77 < HLFI0 OK CAPABILITY completed 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/imaplib.py", line 649, in select 
    typ, dat = self._simple_command(name, mailbox) 
    File "/usr/lib/python2.7/imaplib.py", line 1070, in _simple_command 
    return self._command_complete(name, self._command(name, *args)) 
    File "/usr/lib/python2.7/imaplib.py", line 899, in _command_complete 
    raise self.abort('command: %s => %s' % (name, val)) 
imaplib.abort: command: SELECT => unexpected response: '* 1548 EXISTS' 

다음과 같은 활동의 로그입니다 Murray는 응답이 RFC와 호환되지 않는다고 말합니다.

An D

davmail 아래의 소스 포지에서 두번째

davmail bug report

M의 guessant는 IMAP 살리고 것이 필요했다.

나는 RECENT 응답의 공간 패딩 메시지 수가이 트리거 무엇 것으로 보인다

+0

최근에 서버를 업그레이드 했습니까? 고립되어있어, 이것은 유효한 IMAP 응답 문자열의 일부처럼 보일지 모르지만 문맥에 어긋나거나 imaplib에 버그가있을 수 있습니다. IMAP 세션에 대한 자세한 로깅을 얻을 수 있고 질문에 추가 할 수 있습니까? – tripleee

+0

안녕하세요, @ 주 여러분의 의견에 감사드립니다. 로그가 추가되었습니다. –

답변

1

.. 개발 업데이트이하겠습니다. Python의 imaplib 또는 사용중인 IMAP 서버에서 오류로 분류되어야하는지 여부는 분명하지 않습니다. 필자는 imaplib이 사양에 관계없이 강력해야한다고 주장합니다. 버그 리포트를 제출해야할까요?

(해당 응답을 생성하는 서버에 대한 세부 정보를 추가하는 데주의하십시오. 시장 점유율이 좋은 상용 제품 인 경우 문제를 해결하는 것이 중요하지만 물론 자신의 단순한 경우 파이썬 서버, 상관하지 않을 수도 있습니다.)

+0

안녕하세요 @ tripleee님께 서 imaplib 버그를 신고 해 주셔서 감사합니다. 저를 올바른 방향으로 가르쳐 주시겠습니까? –

+0

[bugs.python.org] (http://bugs.python.org/)이 장소로 보이지만 특정 버전을 사용하는 경우 해당 파일을 버그 추적기에 등록하고 문제를 상향으로 제기하게 할 수 있습니다. 어느 쪽이든, 버그에 대한 포인터를 여기에 따라주십시오. http://docs.python.org/devguide/ 감사합니다. – tripleee