[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