1. 16

I’m submitting this in the hope that maybe someone has been there before - or maybe just to vent ;) Note that this document and project in particular is still a work in (admittedly, slow) progress.

  1.  

  2. 6

    An IMAP server handles N users and can have M shared folders readable by all of them. Rather than have every user be presented with the complete list, each user has a maintained subscription list and mail-clients (used to? mine still does) default to only showing the subscribed folders, with a toggle to switch to see all folders and sub/unsub as desired.

    I for one actively use this, with mail folders. Some lists which I might occasionally want to delve into local copies of, I unsub from. The mail still flows in, I don’t need to get notified for it, but I can search it locally when I want.

    You haven’t even touched on the two vaguely-compatible revisions of the ACL flags and their meanings and how the permissions need to map from one to the other. ;) Nor that for the sake of letting some ancient servers continue to be inefficient, clients are barred by spec from certain behaviors across mailboxes. The IMAP police will tell you how wrong and evil you are for wanting, say, a count of total/new/unread mail across 30 mailboxes. Sometimes you just have to ignore the spec and say “this tool is for competently written IMAP servers” and go ahead and issue a bunch of STATUS commands.

    Disambiguating async notifications from part of the response to a given command almost requires an organically grown codebase handling the entire history of IMAP, rather than having a clean model.

    There’s a reason that the IETF Working Group to turn IMAP+SMTP into something which mobile clients could use for sane handling of attachments ended up being called “lemonade”. When life hands you …