There are a large variety of different IMAP servers in use and while they all meet the basic requirements in RFC 3501 there are a lot of optional features that can greatly affect the resulting capabilities.
The two key things we are looking at now are the result of a capabilities request and the permanent flags report from a select (if it lists \* then we can setup our own flags).
The servers we have information about are
* OK [CAPABILITY IMAP4REV1 NAMESPACE ID AUTH=PLAIN AUTH=LOGIN UIDPLUS STARTTLS ACL METADATA] servername.example.com IMAP4rev1 Citadel 7.22 ready b select INBOX * 207 EXISTS * 8 RECENT * OK [UIDVALIDITY 1] UID validity status * OK [UIDNEXT 44659] Predicted next UID * FLAGS (\Deleted \Seen \Answered) * OK [PERMANENTFLAGS (\Deleted \Seen \Answered)] permanent flags b OK [READ-WRITE] select completed c CAPABILITY * CAPABILITY IMAP4REV1 NAMESPACE ID AUTH=PLAIN AUTH=LOGIN UIDPLUS STARTTLS ACL METADATA c OK CAPABILITY completed
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information. a OK LOGIN Ok. * FLAGS (NonJunk \Draft \Answered \Flagged \Deleted \Seen \Recent) * OK [PERMANENTFLAGS (NonJunk \* \Draft \Answered \Flagged \Deleted \Seen)] Limited * 10 EXISTS * 0 RECENT * OK [UIDVALIDITY 1085611025] Ok * OK [MYRIGHTS "acdilrsw"] ACL b OK [READ-WRITE] Ok * CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION c OK CAPABILITY completed
* OK mail8.hotbox.ru Cyrus IMAP4 v2.2.3 server ready b select INBOX * FLAGS (\Answered \Flagged \Draft \Deleted \Seen) * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] * 21 EXISTS * 20 RECENT * OK [UNSEEN 2] * OK [UIDVALIDITY 1078330095] * OK [UIDNEXT 379] b OK [READ-WRITE] Completed c capability * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE LOGINDISABLED c OK Completed
[email protected]:~> telnet imap.ktb.net 143 Trying 198.175.228.193... Connected to imap.ktb.net. Escape character is '^]'. * OK dovecot ready. a login myuser mypass a OK Logged in. b select INBOX * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 315 EXISTS * 122 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1083632541] UIDs valid * OK [UIDNEXT 12452] Predicted next UID b OK [READ-WRITE] Select completed. c capability * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN LISTEXT LIST-SUBSCRIBED c OK Capability completed.
* OK Microsoft Exchange IMAP4rev1 server version 5.5.2654.50 (wlvexc00.diginsite.com) ready b select INBOX c capability d logout * 22576 EXISTS * 0 RECENT * FLAGS (\Seen \Answered \Flagged \Deleted \Draft) * OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft)] * OK [UNSEEN 50] Is the first unseen message * OK [UIDVALIDITY 54805] UIDVALIDITY value. b OK [READ-WRITE] SELECT completed. * CAPABILITY IMAP4 IMAP4rev1 IDLE LITERAL+ LOGIN-REFERRALS MAILBOX-REFERRALS NAMESPACE AUTH=NTLM c OK CAPABILITY completed. * BYE Microsoft Exchange IMAP4rev1 server version 5.5.2654.50 signing off
* OK Microsoft Exchange Server 2003 IMAP4rev1 server version 6.5.6944.0 (stbowa02.stb.sun.ac.za) ready. b OK LOGIN completed. * 8 EXISTS * 0 RECENT * FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent) * OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags * OK [UNSEEN 1] Is the first unseen message * OK [UIDVALIDITY 13888] UIDVALIDITY value c OK [READ-WRITE] SELECT completed. * CAPABILITY IMAP4 IMAP4rev1 IDLE LOGIN-REFERRALS MAILBOX-REFERRALS NAMESPACE LITERAL+ UIDPLUS CHILDREN d OK CAPABILITY completed. * BYE Microsoft Exchange Server 2003 IMAP4rev1 server version 6.5.6944.0 signing off.
* OK [x.x.x.x] IMAP4rev1 Mercury/32 v4.01a server ready. a login username password a OK LOGIN completed. b select INBOX * 56 EXISTS * 0 RECENT * FLAGS (\Deleted \Draft \Seen \Answered) * OK [UIDVALIDITY 1096732164] UID Validity * OK [UIDNEXT 1102] Predicted next UID * OK [PERMANENTFLAGS (\Deleted \Draft \Seen \Answered)] Settable message flags b OK [READ-WRITE] SELECT completed. c capability * CAPABILITY IMAP4rev1 X-MERCURY c OK CAPABILITY complete.
* OK Messaging Multiplexor (iPlanet Messaging Server 5.2 HotFix 1.26 (built Mar 31 2004)) * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen NonJunk Junk XOPL-3 \*)] * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS CHILDREN LANGUAGE STARTTLS XSENDER X-NETSCAPE XSERVERINFO
* OK [CAPABILITY IMAP4REV1 LOGIN-REFERRALS STARTTLS AUTH=LOGIN] leto IMAP4rev1 2001.315rh at Mon, 31 May 2004 11:06:55 +0200 (CEST) a LOGIN a OK [CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX-REFERRALS SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND] User xy authenticated b SELECT INBOX * 3 EXISTS * 0 RECENT * OK [UIDVALIDITY 1084972038] UID validity status * OK [UIDNEXT 39] Predicted next UID * FLAGS (\Answered \Flagged \Deleted \Draft \Seen) * OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft \Seen)] Permanent flags b OK [READ-WRITE] SELECT completed c CAPABILITY * CAPABILITY IMAP4REV1 IDLE NAMESPACE MAILBOX-REFERRALS SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND LOGIN-REFERRALS STARTTLS AUTH=LOGIN c OK CAPABILITY completed D LOGOUT * BYE leto IMAP4rev1 server terminating connection D OK LOGOUT completed
Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.