- Internet Message Access Protocol
Internet protocol suite Application layer Transport layer Internet layer Link layer
Internet message access protocol (IMAP) is one of the two most prevalent Internet standard protocols for e-mail retrieval, the other being the Post Office Protocol (POP). Virtually all modern e-mail clients and mail servers support both protocols as a means of transferring e-mail messages from a server.
- 1 E-mail protocols
- 2 History
- 3 Advantages over POP
- 4 Disadvantages
- 5 See also
- 6 References
- 7 Further reading
- 8 External links
The Internet Message Access Protocol (commonly known as IMAP) is an Application Layer Internet protocol that allows an e-mail client to access e-mail on a remote mail server. The current version, IMAP version 4 revision 1 (IMAP4rev1), is defined by RFC 3501. An IMAP server listens on well-known port 143.
IMAP supports both on-line and off-line modes of operation. E-mail clients using IMAP generally leave messages on the server until the user explicitly deletes them. This and other characteristics of IMAP operation allow multiple clients to manage the same mailbox. Most e-mail clients support IMAP in addition to POP to retrieve messages; however, fewer email services support IMAP. IMAP offers access to the mail storage. Clients may store local copies of the messages, but these are considered to be a temporary cache.
Incoming e-mail messages are sent to an e-mail server that stores messages in the recipient's email box. The user retrieves the messages with an e-mail client that uses one of a number of e-mail retrieval protocols. Some clients and servers preferentially use vendor-specific, proprietary protocols, but most support the Internet standard protocols, SMTP for sending e-mail and POP and IMAP for retrieving e-mail, allowing interoperability with other servers and clients. For example, Microsoft's Outlook client uses a proprietary protocol to communicate with a Microsoft Exchange Server server as does IBM's Notes client when communicating with a Domino server, but all of these products also support POP, IMAP, and outgoing SMTP. Support for the Internet standard protocols allows many e-mail clients such as Pegasus Mail or Mozilla Thunderbird (see comparison of e-mail clients) to access these servers, and allows the clients to be used with other servers (see list of mail servers).
No copies of the original interim protocol specification or its software exist. Although some of its commands and responses were similar to IMAP2, the interim protocol lacked command/response tagging and thus its syntax was incompatible with all other versions of IMAP.F
The interim protocol was quickly replaced by the Interactive Mail Access Protocol (IMAP2), defined in RFC 1064 (in 1988) and later updated by RFC 1176 (in 1990). IMAP2 introduced command/response tagging and was the first publicly distributed version.
IMAP3 is an extinct and extremely rare variant of IMAP. It was published as RFC 1203 in 1991. It was written specifically as a counter proposal to RFC 1176, which itself proposed modifications to IMAP2. IMAP3 was never accepted by the marketplace. The IESG reclassified RFC1203 "Interactive Mail Access Protocol - Version 3" as a Historic protocol in 1993. The IMAP Working Group used RFC1176 (IMAP2) rather than RFC1203 (IMAP3) as its starting point.
With the advent of MIME, IMAP2 was extended to support MIME body structures and add mailbox management functionality (create, delete, rename, message upload) that was absent in IMAP2. This experimental revision was called IMAP2bis; its specification was never published in non-draft form. An internet draft of IMAP2bis was published by the IETF IMAP Working Group in October 1993. This draft was based upon the following earlier specifications: unpublished IMAP2bis.TXT document, RFC1176, and RFC1064 (IMAP2). The IMAP2bis.TXT draft documented the state of extensions to IMAP2 as of December 1992. Early versions of Pine were widely distributed with IMAP2bis support (Pine 4.00 and later supports IMAP4rev1).
An IMAP Working Group formed in the IETF in the early 1990s took over responsibility for the IMAP2bis design. The IMAP WG decided to rename IMAP2bis to IMAP4 to avoid confusion with a competing IMAP3 proposal from another group that never got off the ground. The expansion of the IMAP acronym also changed to the Internet Message Access Protocol
Advantages over POP
Connected and disconnected modes of operation
When using POP, clients typically connect to the e-mail server briefly, only as long as it takes to download new messages. When using IMAP4, clients often stay connected as long as the user interface is active and download message content on demand. For users with many or large messages, this IMAP4 usage pattern can result in faster response times.
Multiple clients simultaneously connected to the same mailbox
The POP protocol requires the currently connected client to be the only client connected to the mailbox. In contrast, the IMAP protocol specifically allows simultaneous access by multiple clients and provides mechanisms for clients to detect changes made to the mailbox by other, concurrently connected, clients.
Access to MIME message parts and partial fetch
Usually all Internet e-mail is transmitted in MIME format, allowing messages to have a tree structure where the leaf nodes are any of a variety of single part content types and the non-leaf nodes are any of a variety of multipart types. The IMAP4 protocol allows clients to separately retrieve any of the individual MIME parts and also to retrieve portions of either individual parts or the entire message. These mechanisms allow clients to retrieve the text portion of a message without retrieving attached files or to stream content as it is being fetched.
Message state information
Through the use of flags defined in the IMAP4 protocol, clients can keep track of message state; for example, whether or not the message has been read, replied to, or deleted. These flags are stored on the server, so different clients accessing the same mailbox at different times can detect state changes made by other clients. POP provides no mechanism for clients to store such state information on the server so if a single user accesses a mailbox with two different POP clients, state information—such as whether a message has been accessed—cannot be synchronized between the clients. The IMAP4 protocol supports both pre-defined system flags and client defined keywords. System flags indicate state information such as whether a message has been read. Keywords, which are not supported by all IMAP servers, allow messages to be given one or more tags whose meaning is up to the client. Adding user created tags to messages is an operation supported by some web-based email services, such as Gmail.
Multiple mailboxes on the server
IMAP4 clients can create, rename, and/or delete mailboxes (usually presented to the user as folders) on the server, and move messages between mailboxes. Multiple mailbox support also allows servers to provide access to shared and public folders. The IMAP4 Access Control List (ACL) Extension (RFC 4314) may be used to regulate access rights.
IMAP4 provides a mechanism for a client to ask the server to search for messages meeting a variety of criteria. This mechanism avoids requiring clients to download every message in the mailbox in order to perform these searches.
Built-in extension mechanism
Reflecting the experience of earlier Internet protocols, IMAP4 defines an explicit mechanism by which it may be extended. Many extensions to the base protocol have been proposed and are in common use. IMAP2bis did not have an extension mechanism, and POP now has one defined by RFC 2449.
While IMAP remedies many of the shortcomings of POP, this inherently introduces additional complexity. Much of this complexity (e.g., multiple clients accessing the same mailbox at the same time) is compensated for by server-side workarounds such as Maildir or database backends.
The IMAP specification has been criticised for being insufficiently strict and allowing behaviours that effectively negate its usefulness. For instance, the specification states that each message stored on the server has a "unique id" to allow the clients to identify the messages they have already seen between sessions. However, the specification also allows these UIDs to be invalidated with no restrictions, practically defeating their purpose.
Unless the mail storage and searching algorithms on the server are carefully implemented, a client can potentially consume large amounts of server resources when searching massive mailboxes.
IMAP4 clients need to maintain a TCP/IP connection to the IMAP server in order to be notified of the arrival of new mail. Notification of mail arrival is done through in-band signaling, which contributes to the complexity of client-side IMAP protocol handling somewhat. A private proposal, push IMAP, would extend IMAP to implement push e-mail by sending the entire message instead of just a notification. However, push IMAP has not been generally accepted and current IETF work has addressed the problem in other ways (see the Lemonade Profile for more information).
Unlike some proprietary protocols which combine sending and retrieval operations, sending a message and saving a copy in a server-side folder with a base-level IMAP client requires transmitting the message content twice, once to SMTP for delivery and a second time to IMAP to store in a sent mail folder. This is remedied by a set of extensions defined by the IETF LEMONADE Working Group for mobile devices: URLAUTH (RFC 4467) and CATENATE (RFC 4469) in IMAP and BURL (RFC 4468) in SMTP-SUBMISSION. POP servers don't support server-side folders so clients have no choice but to store sent items on the client. Many IMAP clients can be configured to store sent mail in a client-side folder, or to BCC oneself and then filter the incoming mail instead of saving a copy in a folder directly. In addition to the LEMONADE "trio", Courier Mail Server offers a non-standard method of sending using IMAP by copying an outgoing message to a dedicated outbox folder.
Like POP, IMAP is an e-mail only protocol. As a result, items such as contacts, appointments or tasks cannot be managed or accessed using IMAP.
- List of mail servers
- Comparison of e-mail clients
- Post Office Protocol (POP)
- Simple Mail Access Protocol
- IMAP IDLE
- ^ Pegoraro, Rob (2004-03-24). "Internet Providers Should Find Their Way to IMAP". Washington Post. http://www.washingtonpost.com/wp-dyn/articles/A10089-2004Mar20.html. Retrieved 2008-06-25.
- ^ Mullet, Diana (2000). Managing IMAP. O'Reilly. p. 25. ISBN 059600012X.
- ^ The IMAP Connection - IMAP Status and History
- ^ http://www.iana.org/assignments/service-names
- ^ a b "RFC 2061 - IMAP4 COMPATIBILITY WITH IMAP2BIS". IETF. 1996. http://tools.ietf.org/html/rfc2061. Retrieved 2010-08-21.
- ^ "INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 3". IETF. 1991. http://tools.ietf.org/html/rfc1203. Retrieved 2010-08-21.
- ^ "IMAP2, IMAP2bis, IMAP3, IMAP4, IMAP4rev1 (LAN Mail Protocols)". http://stason.org/TULARC/networking/lans-mail-protocols/03-IMAP2-IMAP2bis-IMAP3-IMAP4-IMAP4rev1-LAN-Mail-Protoc.html. Retrieved 2010-08-21.
- ^ "IMAP Overview, History, Versions and Standards". http://www.tcpipguide.com/free/t_IMAPOverviewHistoryVersionsandStandards-3.htm. Retrieved 2010-08-21.
- ^ "Protocol Action: Interactive Mail Access Protocol - Version 3 to Historic (IETF mail archive)". 1993. http://www.ietf.org/mail-archive/web/ietf/current/msg01656.html. Retrieved 2010-08-21.
- ^ "Innosoft and POP/IMAP protocols? (mail archive)". 1993. http://www.pmdf.process.com/ftp/info-pmdf/aug.1993?httpd=content&type=text/plain;%20charset%3DISO-8859-1. Retrieved 2010-08-21.
- ^ "INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 2bis (Internet Draft)". IETF. 1993. http://tools.ietf.org/html/draft-ietf-imap-imap2bis-02. Retrieved 2010-08-21.
- ^ "IMAP2BIS -- EXTENSIONS TO THE IMAP2 PROTOCOL (DRAFT)". 1992. http://ftp.zcu.cz/pub/network/imap/old/IMAP2bis.TXT. Retrieved 2010-08-21.
- ^ "IMAP implementation in Sup, an email client written in Ruby". rubyforge.com. http://sup.rubyforge.org/svn/trunk/lib/sup/imap.rb. Retrieved 2011-02-22.
- ^ "IMAP IDLE: The best approach for 'push' email". Isode.com. http://www.isode.com/whitepapers/imap-idle.html. Retrieved 2009-07-30.
- Heinlein, P; Hartleben, P (2008). The Book of IMAP: Building a Mail Server with Courier and Cyrus. No Starch Press. ISBN 1593271778.
- Hughes, L (1998). Internet e-mail Protocols, Standards and Implementation. Artech House Publishers. ISBN 0890069395.
- Johnson, K (2000). Internet Email Protocols: A Developer's Guide. Addison-Wesley Professional. ISBN 0201432889.
- Loshin, P (1999). Essential Email Standards: RFCs and Protocols Made Practical. John Wiley & Sons. ISBN 0471345970.
- Mullet, K (2000). Managing IMAP. O'Reilly Media. ISBN 059600012X.
- Rhoton, J (1999). Programmer's Guide to Internet Mail: SMTP, POP, IMAP, and LDAP. Elsevier. ISBN 1555582125.
- Wood, D (1999). Programming Internet Mail. O'Reilly. ISBN 1565924797.
- "IMAP Protocol Mailing List". http://www.imapwiki.org/ImapProtocolList.
- RFC 3501 - specification of IMAP version 4 revision 1
- RFC 2683 - IMAP Implementation Suggestions RFC
- RFC 2177 - IMAP4 IDLE command
Email clients Open sourceAlpine · Arachne · Balsa · BlitzMail · Citadel/UX · Classilla · Claws Mail · Columba · Cone · Elm · Evolution · fetchmail · getmail · GNUMail · Gnus · Gnuzilla · KMail · Mahogany · Mailody · Modest · Mozilla Thunderbird · mpop · Mulberry · Mutt · nmh / MH · RoundCube · SeaMonkey · sendEmail · SimpleMail · Spicebird · SquirrelMail · Sylpheed · Wanderlust · YAM · Zimbra Freeware Retail Shareware Donationware DiscontinuedBeonex Communicator · cc:Mail · Claris Emailer · Columbia MM · Courier · Cyberdog · Cyberjack · Hula · Meldware Communication Suite · Microsoft Entourage · Microsoft Internet Mail and News · MINUET · Mozilla Mail & Newsgroups · NeXTMail · Netscape Mail · Netscape Messenger 9 · Omni Mobile · Outlook Express · Pine · POPmail · Windows Mail · Windows Messaging Related technologies Related articles
Wikimedia Foundation. 2010.