[Alpine-info] Expunge with Lavabit IMAP
Benjamin R. Haskell
alpine at benizi.com
Mon Dec 29 17:32:56 PST 2008
On Mon, 29 Dec 2008, Josh Rickmar wrote:
> Hi,
>
> I previously sent a support request to Lavabit about how the Alpine
> expunge command (X) does not work with their IMAP server. In their
> response, they said that the expunge command was being executed, but that
> Alpine wasn't receiving a status update about the new message list,
> instead giving an error of "0 EXISTS" (if all messages were removed).
>
> I ran the IMAP telemetry recorder, and this is the output that I received
> after expunging the first two out of 11 messages in my INBOX, leaving nine
> left:
>
> IMAP telemetry recorder started at Mon Dec 29 18:14:44 2008
> 0000000f NOOP
> 0000000f OK Completed.
> 00000010 NOOP
> 00000010 OK Completed.
> 00000011 EXPUNGE
> * 1 Expunged.
> * 1 Expunged.
> * 9 EXISTS
> * 0 RECENT
> 00000011 OK Expunge complete.
>
>
> However, in Alpine, I get the error:
>
> [{lavabit.com:993/imap/notls/ssl/novalidate-cert/user="joshua_rickmar"}inbox
> : Unknown message data: 9 EXISTS]
>
>
> ...and the message list is not updated. The two marked messages are still
> marked for deletion in Alpine. However, if I open a new IMAP client
> (including webmail), the messages are gone. The only way to remove these
> messages from the message list is to close Alpine and restart it.
>
> My question is: why is this happening, and is there a workaround to
> solve this problem?
Lavabit's server is broken. The proper untagged response for an EXPUNGE is
of the form:
* SP nz-number SP "EXPUNGE" CRLF
(where SP = space, nz-number = nonzero integer)
So, in your example, it could have responded with:
* 1 Expunge
* 1 Expunge
* 9 EXISTS
* 0 RECENT
00000011 OK Expunge complete.
But the trailing "d." of "Expunged." is contrary to RFC 3501 §7.4.1.[1]
(For the grammar rules, I combined message-data and response-data )
And as long as you're contacting them, there's a typo in their SELECT
response:
B SELECT INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft \Recent)
* OK [PREMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft)]
^^
(PREMANENTFLAGS instead of PERMANENTFLAGS)
Best,
Ben
[1] http://tools.ietf.org/html/rfc3501#section-7.4.1
(currently down. also at http://www.ietf.org/rfc/rfc3501 )
More information about the Alpine-info
mailing list