Internet Message Access ProtocolI
rotocol (commonly known as IMAP
, and previously called Interactive Mail Access Protocol) is an application layer Internet
protocol used for accessing email
on a remote server
from a local client
. IMAP and POP3
are the two most prevalent Internet standard
protocols for email retrieval. Both are supported by virtually all modern email clients and servers. The current version of IMAP, IMAP version 4 revision 1 (IMAP4rev1), is defined by RFC
IMAP was designed by Mark Crispin as a modern alternative to the widely used POP3 email retrieval protocol.
Fundamentally, both of these protocols allow an email client to access messages stored on an email server.
Important capabilities in IMAP but not POP3 include:
- Support for both connected and disconnected modes of operation
When using POP3, clients typically connect to the email server very briefly, only as long as it takes to download any 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 much faster response times.
- Support for multiple clients simultaneously connected to the same mailbox
The POP3 protocol assumes the currently connected client is the only client connected to the mailbox. In contrast, the IMAP4 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.
- Support for access to MIME parts of messages and partial fetch
Nearly all internet email is transmitted in MIME format. MIME allows 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's being fetched.
- Support for message state information to be kept on the server
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 multiple clients accessing the same mailbox at different times can detect state changes made by other clients.
- Support for access to 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.
- Support for server-side searches
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.
- Support for a well defined extension mechanism
Reflecting the experience of earlier Internet protocols, IMAP defines an explicit mechanism by which it may be extended. Many extensionss to the base protocol have been proposed and are in common use.
Whether using POP3 or IMAP4 to retrieve messages, clients use the SMTP protocol to send messages. Email clients are sometimes referred to as either POP or IMAP clients, but in both cases SMTP is also used.
Most email programs also use LDAP for directory services.
Unlike many older Internet protocols, IMAP4 natively supports encrypted login mechanisms. Plain text transmission of passwords in IMAP4 is also possible. Because the encryption mechanism to be used must be agreed between the server and client, plain text passwords are used in some combinations of clients and servers (typically Microsoft Windows clients and non-Windows servers). It is also possible to encrypt IMAP4 traffic using SSL.
IMAP4 works over a TCP/IP connection using network port 143.
The following IMAP-servers are common (see also List of mail servers):
- Cyrus IMAP server - http://asg.web.cmu.edu/cyrus/imapd/
- Stalker Communigate Pro - http://www.stalker.com/CommuniGatePro/
- University of Washington IMAP toolkit (closely related to the Pine email client) - http://www.washington.edu/imap/
- email client
- Johnson, Kevin. 2000. Internet Email Protocols: A Developer's Guide. Addison-Wesley. ISBN 0-201-43288-9.