On 5/30/06, Jan Kundrát jkt@gentoo.org wrote:
Timothy White wrote:
I think this means that Squirrelmail just sent the message anyway even after Dovecot replied to APPEND command with "NO Quota exceeded". So I'd say this is a Squirrelmail bug. If Squirrelmail insists on sending the message anyway, it should use LITERAL+ extension and this won't be a problem.
Not fully understanding the IMAP protocole. How should the LITERAL+ extension help? If the APPEND is going to exceed quota, then how can SM still send the message? (Save as Draft)?
If SM uses the "traditional" IMAP4rev1 mechanism, it sends something like "tag APPEND mailbox {size-of-message}\r\n" and waits for server's "+OK feel free to send me the data\r\n", but it receives "tag NO I'm not interested in your junk\r\n". At this point Dovecot properly expects another IMAP command while SM ignores the standard and sends the actual message, however Dovecot correctly parses it as an IMAP command.
The LITERAL+ extension (among other things) forces the server to actually receive the data, regardless if it wants to process them or discard them.
Ok, I understand the LITERAL+ better now.
from the rawlogs, I have got the following
A002 LIST "" "Drafts" A003 APPEND "Drafts" (\Seen) {1158269} Received: from 220.235.130.138
S: * OK [RAWLOG TIMESTAMP] 2006-05-30 20:55:33 C: A002 LIST "" "Drafts" S: * LIST (\HasNoChildren) "/" "Drafts" S: A002 OK List completed. C: A003 APPEND "Drafts" (\Seen) {1158269} C: Received: from 220.235.130.138 C: ... S: A003 NO Quota exceeded S: Received: BAD Error in IMAP command FROM: Unknown command. S:....
(Due to IMAP style, I can't determine exactly what order of things, as I'm taking these from the rawlogs)
So yes, that shows the SM isn't playing right.
/me goes to file a bug.
Thanks
Tim
Linux Counter user #273956