rfc2061.txt (5867B)
1 2 3 4 5 6 7 Network Working Group M. Crispin 8 Request for Comments: 2061 University of Washington 9 Category: Informational December 1996 10 11 12 IMAP4 COMPATIBILITY WITH IMAP2BIS 13 14 Status of this Memo 15 16 This memo provides information for the Internet community. This memo 17 does not specify an Internet standard of any kind. Distribution of 18 this memo is unlimited. 19 20 Introduction 21 22 The Internet Message Access Protocol (IMAP) has been through several 23 revisions and variants in its 10-year history. Many of these are 24 either extinct or extremely rare; in particular, several undocumented 25 variants and the variants described in RFC 1064, RFC 1176, and RFC 26 1203 fall into this category. 27 28 One variant, IMAP2bis, is at the time of this writing very common and 29 has been widely distributed with the Pine mailer. Unfortunately, 30 there is no definite document describing IMAP2bis. This document is 31 intended to be read along with RFC 1176 and the most recent IMAP4 32 specification (RFC 2060) to assist implementors in creating an IMAP4 33 implementation to interoperate with implementations that conform to 34 earlier specifications. Nothing in this document is required by the 35 IMAP4 specification; implementors must decide for themselves whether 36 they want their implementation to fail if it encounters old software. 37 38 At the time of this writing, IMAP4 has been updated from the version 39 described in RFC 1730. An implementor who wishes to interoperate 40 with both RFC 1730 and RFC 2060 should refer to both documents. 41 42 This information is not complete; it reflects current knowledge of 43 server and client implementations as well as "folklore" acquired in 44 the evolution of the protocol. It is NOT a description of how to 45 interoperate with all variants of IMAP, but rather with the old 46 variant that is most likely to be encountered. For detailed 47 information on interoperating with other old variants, refer to RFC 48 1732. 49 50 IMAP4 client interoperability with IMAP2bis servers 51 52 A quick way to check whether a server implementation supports the 53 IMAP4 specification is to try the CAPABILITY command. An OK response 54 will indicate which variant(s) of IMAP4 are supported by the server. 55 56 57 58 Crispin Informational [Page 1] 59 60 RFC 2061 IMAP4 Compatibility December 1996 61 62 63 If the client does not find any of its known variant in the response, 64 it should treat the server as IMAP2bis. A BAD response indicates an 65 IMAP2bis or older server. 66 67 Most IMAP4 facilities are in IMAP2bis. The following exceptions 68 exist: 69 70 CAPABILITY command 71 The absense of this command indicates IMAP2bis (or older). 72 73 AUTHENTICATE command. 74 Use the LOGIN command. 75 76 LSUB, SUBSCRIBE, and UNSUBSCRIBE commands 77 No direct functional equivalent. IMAP2bis had a concept 78 called "bboards" which is not in IMAP4. RFC 1176 supported 79 these with the BBOARD and FIND BBOARDS commands. IMAP2bis 80 augmented these with the FIND ALL.BBOARDS, SUBSCRIBE BBOARD, 81 and UNSUBSCRIBE BBOARD commands. It is recommended that 82 none of these commands be implemented in new software, 83 including servers that support old clients. 84 85 LIST command 86 Use the command FIND ALL.MAILBOXES, which has a similar syn- 87 tax and response to the FIND MAILBOXES command described in 88 RFC 1176. The FIND MAILBOXES command is unlikely to produce 89 useful information. 90 91 * in a sequence 92 Use the number of messages in the mailbox from the EXISTS 93 unsolicited response. 94 95 SEARCH extensions (character set, additional criteria) 96 Reformulate the search request using only the RFC 1176 syn- 97 tax. This may entail doing multiple searches to achieve the 98 desired results. 99 100 BODYSTRUCTURE fetch data item 101 Use the non-extensible BODY data item. 102 103 body sections HEADER, TEXT, MIME, HEADER.FIELDS, HEADER.FIELDS.NOT 104 Use body section numbers only. 105 106 BODY.PEEK[section] 107 Use BODY[section] and manually clear the \Seen flag as 108 necessary. 109 110 111 112 113 114 Crispin Informational [Page 2] 115 116 RFC 2061 IMAP4 Compatibility December 1996 117 118 119 FLAGS.SILENT, +FLAGS.SILENT, and -FLAGS.SILENT store data items 120 Use the corresponding non-SILENT versions and ignore the 121 untagged FETCH responses which come back. 122 123 UID fetch data item and the UID commands 124 No functional equivalent. 125 126 CLOSE command 127 No functional equivalent. 128 129 130 In IMAP2bis, the TRYCREATE special information token is sent as a 131 separate unsolicited OK response instead of inside the NO response. 132 133 IMAP2bis is ambiguous about whether or not flags or internal dates 134 are preserved on COPY. It is impossible to know what behavior is 135 supported by the server. 136 137 IMAP4 server interoperability with IMAP2bis clients 138 139 The only interoperability problem between an IMAP4 server and a 140 well-written IMAP2bis client is an incompatibility with the use of 141 "\" in quoted strings. This is best avoided by using literals 142 instead of quoted strings if "\" or <"> is embedded in the string. 143 144 Security Considerations 145 146 Security issues are not discussed in this memo. 147 148 Author's Address 149 150 Mark R. Crispin 151 Networks and Distributed Computing 152 University of Washington 153 4545 15th Aveneue NE 154 Seattle, WA 98105-4527 155 156 Phone: (206) 543-5762 157 EMail: MRC@CAC.Washington.EDU 158 159 160 161 162 163 164 165 166 167 168 169 170 Crispin Informational [Page 3] 171