Problem with imaplib (weird result if mailbox contains a %)

Antoon Pardon apardon at forel.vub.ac.be
Wed Nov 29 08:08:31 EST 2006


On 2006-11-29, Leo Kislov <Leo.Kislov at gmail.com> wrote:
> Antoon Pardon wrote:
>> On 2006-11-28, Leo Kislov <Leo.Kislov at gmail.com> wrote:
>> >
>> Are there more docs than at http://www.python.org/doc/. I don't find
>> those very helpfull in explaining this.
>>
>> I also took a look at rfc 2060 and to be honest I don't find anything
>> there to explain this difference. I only took a closer look at section
>> 7.2.2. So maybe I should look somewehere else but after reading section
>> 7.2.2. I don't understand why the list method returned a tuple for this
>> mailbox instead of the following string:
>>
>>    '(\\HasNoChildren) "/" "user/cpapen/newsletters %"'
>
> This is described in section 4.3. imaplib is too close to the protocol.
> It should interpret response for each command separately. For example
> list method could return list of tuples like:
>
> ("\\HasNoChildren", "/", "user/cpapen/newsletters %")
>
> Without this abstraction level in imaplib you have to build it
> yourself.

Ah yes, I'm beginning to understand now, what is going on.

I also did a imap session by hand using telnet. That helped.

>> >> If it is, is it fixed in later versions?
>> >
>> > Why don't you try to pull imaplib.py from later versions? I don't think
>> > it changed that much so it should be compatible with python 2.3
>>
>> I could take my hands on a 2.4 version and the result was the same.
>
> I was talking only about empty string response. Is it still there?
> Anyway, this issue requires investigation. That could also be a bug in
> the server.

The empty line is still there using 2.4.
This is part of the session I did by hand. It doesn't seem to be a
server problem.

$ telnet machine.domain imap
Trying xxx.xxx.xxx.xxx...
Connected to machine.domain
Escape character is '^]'.
* OK maxi Cyrus IMAP4 v2.2.13 server ready
0001 LOGIN ... ....
0001 OK User logged in
0002 LIST "" user/cpapen/*
* LIST (\HasNoChildren) "/" "user/cpapen/Out"
...
* LIST (\HasNoChildren) "/" "user/cpapen/music &- beats"
* LIST (\HasNoChildren) "/" {25}
user/cpapen/newsletters %
* LIST (\HasNoChildren) "/" "user/cpapen/organisatie &- structuur"
* LIST (\HasNoChildren) "/" "user/cpapen/sociale wetenschappen"
...


Many thanks for your contribution.

-- 
Antoon Pardon



More information about the Python-list mailing list