At Handle we talk to a lot of email servers, mostly via IMAP. Something most engineers don’t realize is how crazy IMAP has become, in large part due to fragmentation and providers who add functionality on top of the protocol. Talking to Yahoo? No IMAP IDLE. Talking to Gmail? You may or may not be blessed with an “All Mail” folder. It might also be localized to the user’s language (e.g. “Alle Nachrichten” for German users). There’s also COMPRESS, MODESEQ, Gmail MSGID & THRID – the list goes on. How does a programmer begin to learn the nuances?