On Sun, 2007-05-13 at 06:55 -0700, Marc Perkel wrote:
IMAP establishes a connection between the client and the server. Wouldn't it be great if it could be a conduit to let custom Thunderbird plugins talk to custom server application over the IMAP interface? For example, personalized server settings. Suppose for example I want Thunderbird to edit my server side white lists or black lists or any other setting? Wouldn't it be nice if IMAP supported these changes? The connection is made. It's a secure connection that's been authenticated. Lets use it!
Here's my initial thoughts on this. Suppose we extended IMAP to include an EXECUTE command as follows:
EXECUTE command parameter, parameter ....
I think this could be done in almost standard way with METADATA extension (http://www.ietf.org/internet-drafts/draft-daboo-imap-annotatemore-11.txt). It allows setting and getting any key=value pairs in the server (also for mailboxes). Then you could have a Dovecot plugin that listens for some specific keys and handles them in whatever way you want.
100 execute blacklist add joe@smith.com 100 ok
METADATA doesn't really support adding/removing, but it could be kludged something like this:
1 setmetadata "" "/x-blacklist/joe@smith.com" (value.priv "1")
Although the joe@smith.com can't contain "*" or "%" characters. If that's needed then the string could be base64 encoded. Or the address could be in the value and the key would contain some kind of a unique ID.
Listing blacklist would work like:
1 getmetadata "/x-blacklist/* value.priv"
Anyway all of this would mean that if client implements a standard METADATA browser you could edit these kinds of lists without any special support from the client.