Re: [Dovecot] ENVELOPE mishandling of Subject lines with quote(s)?
Quoting Dinh Le d...@flic.net: * 89 FETCH (ENVELOPE (29 Oct 2008 15:44:03 -0500 {65} 2nd Edition of Brennesholtz/Stupp Projection Displays Available ((Insight Media NIL administrator insightmedia.info)) ((Insight Media NIL administrator insightmedia.info)) ((Insight Media NIL administrator insightmedia.info)) ((NIL NIL dinh flic.net)) NIL NIL NIL 20081029154358.0c359ae169595...@insightmedia.info)) [snip] Notice that message 89's Subject line Subject: 2nd Edition of Brennesholtz/Stupp Projection Displays Available has quotes and this dovecot's ENVELOPE response failed to get parsed by a popular Perl module (Mail::IMAPClient::BodyStructure::Envelope). I have a hunch that this is dovecot's fault but I could be wrong. How should dovecot (or any imap server) deal with Subject lines with quotes inside ENVELOPE? The subject, because it contains quotes, can't be expressed in a quoted string so it is instead sent in a literal string. In a literal string, the data is exactly what appears in the original message. No post-processing mechanism should be stripping quotes or anything from this data - it is already in its canonical state. Dovecot is 100% correct in its return. michael
Re: [Dovecot] ENVELOPE mishandling of Subject lines with quote(s)?
On 6.2.2012, at 22.45, Michael M Slusarz wrote: The subject, because it contains quotes, can't be expressed in a quoted string so it is instead sent in a literal string. Small correction: Quotes can be escaped in a quoted-string, but Dovecot just doesn't want to do it. Many other servers behave this way as well. In a literal string, the data is exactly what appears in the original message. No post-processing mechanism should be stripping quotes or anything from this data - it is already in its canonical state. Dovecot is 100% correct in its return. Yes. Looks like Perl's IMAP client hasn't been built properly to expect literals in places where they are allowed. My guess is that this is only one of the 100 other places where a literal is allowed by RFC but not by Perl.. Maybe I should add some evil setting to Dovecot where it would use literals everywhere it can, or perhaps randomly send atoms/strings/literals. :)
Re: [Dovecot] ENVELOPE mishandling of Subject lines with quote(s)?
On 6.2.2012, at 22.55, Timo Sirainen wrote: Maybe I should add some evil setting to Dovecot where it would use literals everywhere it can, or perhaps randomly send atoms/strings/literals. :) BTW. If anyone wants to try, the attached patch makes Dovecot return (almost) all possible fields as literals. You'll need to delete dovecot.index.cache files to get the full effect. break-imap-clients.diff Description: Binary data
Re: [Dovecot] ENVELOPE mishandling of Subject lines with quote(s)?
On Mon, 6 Feb 2012, Timo Sirainen wrote: On 6.2.2012, at 22.45, Michael M Slusarz wrote: The subject, because it contains quotes, can't be expressed in a quoted string so it is instead sent in a literal string. Small correction: Quotes can be escaped in a quoted-string, but Dovecot just doesn't want to do it. Many other servers behave this way as well. In a literal string, the data is exactly what appears in the original message. No post-processing mechanism should be stripping quotes or anything from this data - it is already in its canonical state. Dovecot is 100% correct in its return. Yes. Looks like Perl's IMAP client hasn't been built properly to expect literals in places where they are allowed. My guess is that this is only one of the 100 other places where a literal is allowed by RFC but not by Perl.. Maybe I should add some evil setting to Dovecot where it would use literals everywhere it can, or perhaps randomly send atoms/strings/literals. :) Thanks, I will try to come up
Re: [Dovecot] ENVELOPE mishandling of Subject lines with quote(s)?
On Mon, 6 Feb 2012, Timo Sirainen wrote: On 6.2.2012, at 22.45, Michael M Slusarz wrote: The subject, because it contains quotes, can't be expressed in a quoted string so it is instead sent in a literal string. Small correction: Quotes can be escaped in a quoted-string, but Dovecot just doesn't want to do it. Many other servers behave this way as well. In a literal string, the data is exactly what appears in the original message. No post-processing mechanism should be stripping quotes or anything from this data - it is already in its canonical state. Dovecot is 100% correct in its return. Yes. Looks like Perl's IMAP client hasn't been built properly to expect literals in places where they are allowed. My guess is that this is only one of the 100 other places where a literal is allowed by RFC but not by Perl.. Maybe I should add some evil setting to Dovecot where it would use literals everywhere it can, or perhaps randomly send atoms/strings/literals. :) Oops, my happy Alpine ^X finger accidently sent the previous reply. I meant to say thanks and will try to come up with a fix to this literal string problem for the Perl IMAPClient module. Don't want Timo's evil config setting to wreak havocs :-).
Re: [Dovecot] ENVELOPE mishandling of Subject lines with quote(s)?
On 6 Feb 2012, at 16:34, Dinh Le wrote: On Mon, 6 Feb 2012, Timo Sirainen wrote: On 6.2.2012, at 22.45, Michael M Slusarz wrote: The subject, because it contains quotes, can't be expressed in a quoted string so it is instead sent in a literal string. Small correction: Quotes can be escaped in a quoted-string, but Dovecot just doesn't want to do it. Many other servers behave this way as well. In a literal string, the data is exactly what appears in the original message. No post-processing mechanism should be stripping quotes or anything from this data - it is already in its canonical state. Dovecot is 100% correct in its return. Yes. Looks like Perl's IMAP client hasn't been built properly to expect literals in places where they are allowed. My guess is that this is only one of the 100 other places where a literal is allowed by RFC but not by Perl.. Maybe I should add some evil setting to Dovecot where it would use literals everywhere it can, or perhaps randomly send atoms/strings/literals. :) Oops, my happy Alpine ^X finger accidently sent the previous reply. I meant to say thanks and will try to come up with a fix to this literal string problem for the Perl IMAPClient module. Don't want Timo's evil config setting to wreak havocs :-). The best solution for you may be to to update the version of Mail::IMAPClient you are using. There were fixes for its handling of literals claimed in the CHANGES file of v3.26 (2011-01-31). I don't know if that will fix this particular problem, but if you are running an older version then it would be worth trying the current version.
Re: [Dovecot] ENVELOPE mishandling of Subject lines with quote(s)?
Quoting Timo Sirainen t...@iki.fi: On 6.2.2012, at 22.55, Timo Sirainen wrote: Maybe I should add some evil setting to Dovecot where it would use literals everywhere it can, or perhaps randomly send atoms/strings/literals. :) BTW. If anyone wants to try, the attached patch makes Dovecot return (almost) all possible fields as literals. You'll need to delete dovecot.index.cache files to get the full effect. Very useful. Turns out the only thing I wasn't handling correctly was the MIME types/subtypes in BODYSTRUCTURE. This is a great tool for debugging client code. Not sure the difficulty to add as a config (or even a hidden config). Being able to easily turn on/off would increase my usage of the tool. michael