2013-06-04 25 views
1

嗨我突然遇到一个错误,使用imaplib上的一些代码,以前工作正常。python imaplib - 错误'意想不到的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()这是它摔倒的地方。

直到最近,这个程序还是非常好的。

我在做什么错,我该如何解决?

活动的日志如下

>>> 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' 

**更新**

我现在的python-dev的

Bug report on Python

大卫提交下一个bug默里表示,答复是不符合RFC的

d在davmail SourceForge上

下的第二

davmail bug report

中号guessant说对IMAP保持活动是必要的。

我会记住这与发展更新..

+0

服务器最近是否升级?隔离起来,这看起来像是一个有效的IMAP响应字符串的一部分,但也许它看起来超出了上下文,或者可能是'imaplib'中的一个错误。您能否获得IMAP会话的详细记录并添加到问题中? – tripleee

+0

嗨@tripleee感谢您的评论。日志已添加。 –

回答

1

看来,在RECENT响应的空间填充消息计数是什么触发此。我不清楚它是否应该在Python imaplib中或在您使用的IMAP服务器中归类为错误。我认为imaplib应该对此强大,不管规范说什么。也许你应该提交一份错误报告? (如果你这样做,请注意添加关于哪个服务器产生这个响应的细节,如果它是一个市场份额很大的商业产品,修复很重要,当然,如果它是你自己的简单Python服务器,他们可能不关心。)

+0

嗨@tripleee还没有找到ite文件imaplib的错误报告。你能指出我正确的方向吗? –

+0

[bugs.python.org](http://bugs.python.org/)似乎是一个地方,但如果您使用的是特定版本,可能会将其归档到他们的错误跟踪器中,并让他们向上游提出问题。无论哪种方式,请在这里跟上一个指向错误的指针。另见http://docs.python.org/devguide/谢谢! – tripleee

相关问题