pop3 retr responses too large lines - Fails with current python's poplib

Timo Sirainen tss at iki.fi
Fri Apr 10 14:59:25 UTC 2015


On 10 Apr 2015, at 17:51, Guillermo M. Narvaja <guillermo.narvaja at fierro.com.ar> wrote:
> 
> El vie, 10-04-2015 a las 10:21 +0900, Timo Sirainen escribió:
>> On 09 Apr 2015, at 06:52, Guillermo M. Narvaja <guillermo.narvaja at fierro.com.ar> wrote:
>>> 
>>> Since December 2014, clients using the Python poplib library (getmail in
>>> my case) started to limit the line length of RETR and other command
>>> responses sent from the server to 2048 bytes:
>>> 
>>> See https://bugs.python.org/issue16041 (Included at least in
>>> Python-2.7.9)
>>> 
>>> Dovecot doesn't have line split in the POP3 module, so Python fails to
>>> retrieve messages with long lines.
>>> 
>>> RFC 1939 says:
>>> "
>>>  Responses in the POP3 consist of a status indicator and a keyword
>>>  possibly followed by additional information.  All responses are
>>>  terminated by a CRLF pair.  Responses may be up to 512 characters
>>>  long, including the terminating CRLF.
>>> "
>>> 
>>> I think dovecot-pop3 should split it's output in lines of at least 512
>>> characters. Or at least it should have a "pop3_max_line_length" setting
>>> (like "imap_max_line_length").
>> 
>> Um. This is talking about POP3 responses themselves - not about the
>> actual email message body. Dovecot's POP3 reponses are short always I
>> think. The message body is sent exactly as it was originally saved.
>> Changing this could break things like PGP/SMIME signing and so on.
> 
> So there is no way to break the lines without breaking the message?

Right.

> Please note that if you are right, I should post a bug on the Python
> project.

Yes. They are crazy if they think their behavior would work with any POP3 server. I think they have simply misunderstood the RFC.



More information about the dovecot mailing list