With the current IMAP specification, if one client creates a special mailbox "Postponed" and subscribes to it, then deletes the mailbox and crashes/dies (and is uninstalled and so on), then all other clients will forever see the first client's "Postponed" in the subscribed list, and not know what to do about it.
That's like saying:
With the current IMAP specification, if one client sets a flag on a message, then all other clients will forever see the flag and not know what to do about it.
Why should it matter if a subscribed mailbox doesn't exist at that point in time? It may exist in the future, and certainly a user can always choose to unsubscribe any name from any client. It's his subscription list; he can do with it as he pleases.
It's not really optimal, especially since the IMAP spec implicitly says that if someone subscribes to that mailbox again, then the server should list the same mailbox twice in the subscribed list. Nobody knows when to unsubscribe from it, because nobody created it.
Huh?!?!!
WHERE in the specification does it say that "if someone subscribes to that mailbox again, then the server should list the same mailbox twice in the subscribed list"?
Are you saying that I am a crazy person who would say something like that in the specification, yet write a reference server implementation which has such error messages as "Already subscribed to mailbox"?
I seriously don't know what to do with the mess in the subscribed list. The server can't do anything really, and the best a client user can do is to unsubscribe from it. The client could test the validity of all subscribed mailboxes, and mark all nonexistent mailboxes gray or something, that's all I could think of.
The difficulty is in your interpretation of the subscription functionality. It makes perfect sense if you think of subscriptions as being like browser bookmarks, or netnews subscriptions.
A good use for subscriptions is an "Open subscribed mailbox" command that puts up a list of (only) subscribed names.
Or perhaps a command that looks through all subscribed mailboxes for new messages, disregarding any mailbox that gets a SELECT failure, and opens the first one it finds. Along with this is an "open next" command.
-- Mark --
http://staff.washington.edu/mrc Science does not emerge from voting, party politics, or public debate. Si vis pacem, para bellum.