Internet Message Access Protocol

The Internet Message Access Protocol ( IMAP), originally Interactive Mail Access Protocol, is a network protocol that provides a network file system for e -mails.

IMAP was designed in the 1980s with the advent of personal computers to resolve dependencies of individual client machines in the mail communication. To this end, IMAP extends the functions and procedures of Post Office Protocol ( POP) so that users can save their mails, folder structures and settings on the ( mail ) servers and leave. The ( PC ) clients access online to the information on the servers, and must accommodate at most copies of it. While a user has of POP after losing his PC either all emails lost or deleted is already receiving emails again, a user of IMAP keeps his mail on the servers and, over several and different clients away, always uniform access.

The Simple Mail Access Protocol is an approach to combine the functionality of IMAP using the Simple Mail Transfer Protocol, which is otherwise required for sending e -mails.

Log Properties

IMAP is a text-based protocol for accessing e- mails that are located on a mail server. A mail client makes requests to the server only after current needed information. If a user wishes to see, for example, the contents of a folder, the client brings a latest news list of that folder from the server. If the content of an email are displayed, it is loaded from the server. Since all the data still remains on the server, show - even when using multiple clients - all the same, current data to a mailbox. In addition, a local storage of data is unnecessary and advanced options such as browsing the mails are on the server side.

With IMAP, access to various folders within each mailbox is possible. Many servers can sort incoming mail into different folders directly ( filter ). By setting access rights for a mailbox folder also allows multiple users to simultaneously access the same data. The extension IMAP IDLE provides an instant notification to client ( pushing ) when a new mail arrives. So unnecessary traffic is avoided, would be incurred at constant requests ( polling) of a client. It has no internet connection to its mail server also no longer have access to the mails is usually possible. Some clients solve this problem by creating local copies of the messages to which they have access in offline mode. When restored Internet connection, the data is again compared with the mail server (synchronized).

Because of the central storage of data on an external server and the own data must be considered. The connection to the server should therefore be encrypted.

Example of an IMAP session ( RFC 3501 IMAP4rev1 example, Chapter 8 - shortened):

* FLAGS ( \ Answered \ Flagged \ Deleted \ Seen \ Draft) * 2 RECENT * OK [ UNSEEN 17] Message 17 is the first unseen message a002 OK [ READ-WRITE ] SELECT completed

Defined flags 2 urgent messages (eg new messages) Mail # 17 is unread. All older have already been read. Client is allowed to make changes to mail

A003 OK FETCH completed

Delivered on 17 July 1996 great about 4kB Mail header:

A004 OK FETCH completed

A005 OK FLAGS completed

A006 OK LOGOUT completed

Clients

IMAP is now supported by almost all popular e- mail programs. However, there are large differences in the degree of support. Many clients support only basic functions for message retrieval (which most of the users sufficient ). Only a few programs use the full functionality, provide the IMAP server. This includes, for example, the assignment of rights to the shared access of different users on a folder.

Selection of clients with advanced IMAP support:

  • Alpine / Pine
  • Wildebeest
  • Mulberry ( nearly full support )
  • Microsoft Outlook (version 2007)
  • Evolution
  • Mozilla Thunderbird, Seamonkey

Selection of clients with simple IMAP support:

Server

Meanwhile, many mail servers support IMAP. However, some providers suppress the functionality ( or require a higher fee ), since IMAP more data will be stored on the server and also the average transfer amount increases.

Cyrus was the first server with a version of IMAP, which was recommended as an Internet standard. UW IMAP moved in the same year and was previously a proof of concept of IMAP. This server of the University of Washington IMAP extended, but not documented and was adopted nonetheless from Carnegie Mellon University in their Cyrus. This approach of the two universities in the first implementations meant that conformity and compatibility with IMAP is notoriously controversial.

The Courier mail server was the move away from mbox concept which is now regarded as unfit. Courier stores the e- mails after the Maildir concept. The stability and performance of the storage concept is an essential criterion of servers for IMAP.

In the Unix environment come out the above, the following, among other IMAP server to use:

  • Citadel groupware server
  • Dovecot

On other platforms and also in the commercial sector offer messaging products IMAP interfaces.

  • Mercury MTS for Netware and Windows
  • Agorum core is an open source document management system with IMAP access
  • Alfresco is an open source document management system that supports IMAP access.

In addition, build groupware solutions IMAP firmly in their concept a:

  • Kolab Server
  • Lotus Domino
  • Microsoft Exchange Server
  • Zarafa

Pros and Cons

  • Messages are stored separately on the server
  • Fast first access to the mailbox
  • The contents of the mailbox is always up to date
  • For each unread message a connection must be made ​​to the server
  • To save a copy of a sent message, this a second time must be uploaded

Authentication

The server can deny access to unauthorized users on a mailbox. In any case, the user must be authenticated before it can gain access to mails. This is done by logging in with username and password. The password is transmitted on IMAP protocol level in plain text. Mail servers can therefore prohibit clients to transmit the password, if not previously encrypted session is established.

Alternatively, the use of other network authentication protocols (eg GSSAPI, Kerberos) possible.

Encoding

To protect the data during transmission from third parties, the data connection using SSL / TLS can be encrypted. But there are two different methods:

STARTTLS

Following the establishment of an unencrypted data connection to the server (port 143) can be initiated an encrypted session with the command STARTTLS, so that all subsequently sent data is transferred only encrypted over this connection. This protocol extension is already provided fixed in the latest protocol specification.

IMAPS

When using IMAPS, the connection is already encrypted to the server during connection establishment by SSL. For the server to recognize that a different port must be used. For this, the port 993 is reserved.

After establishing the SSL connection is at least IMAPv4 used. The SSL layer is transparent to the IMAP protocol, which means there will be no changes to the IMAP protocol made.

Specifications

The historical version 3 of IMAP was still classified as experimental. The experimental version 2 of IMAP was the first whose specification was released.

The documentation of IMAP is composed of a variety of basic, supplementary or widening RFC.

  • RFC 1731 - IMAP4 Authentication Mechanisms
  • RFC 1732 - IMAP4 Compatibility With IMAP2 And IMAP2bis
  • RFC 1733 - Distributed Electronic Mail Models in IMAP4
  • RFC 2061 - IMAP4 Compatibility With IMAP2bis
  • RFC 2062 - Internet Message Access Protocol - Obsolete Syntax
  • RFC 2087 - IMAP4 QUOTA Extension
  • RFC 2088 - IMAP4 non- synchronizing literals
  • RFC 2177 - IMAP4 IDLE command
  • RFC 2180 - IMAP4 Multi- Accessed Mailbox Practice
  • RFC 2193 - IMAP4 Mailbox Referrals
  • RFC 2195 - IMAP / POP Authorize Extension for Simple Challenge / Response
  • RFC 2221 - IMAP4 Login Referrals
  • RFC 2342 - IMAP4 Namespace
  • RFC 2595 - Using TLS with IMAP, POP3 and ACAP
  • RFC 2683 - IMAP4 Implementation Recommendations
  • RFC 2971 - IMAP4 ID extension
  • RFC 3348 - IMAP4 Child Mailbox Extension
  • RFC 3501 - Internet Message Access Protocol - Version 4rev1
  • RFC 3502 - IMAP MULTIAPPEND Extension
  • RFC 3503 - Message Disposition Notification (MDN ) profile for Internet Message Access Protocol (IMAP)
  • RFC 3516 - IMAP4 Binary Content Extension
  • RFC 3656 - The Mailbox Update ( MUPDATE ) Distributed Mailbox Database Protocol
  • RFC 3691 - IMAP command UNSELECT
  • RFC 4314 - IMAP4 Access Control List ( ACL) Extension
  • RFC 4315 - Internet Message Access Protocol (IMAP) - extension UIDPLUS
  • RFC 4466 - Collected Extensions to IMAP4 ABNF
  • RFC 4467 - Internet Message Access Protocol (IMAP) - extension URLAUTH
  • RFC 4469 - Internet Message Access Protocol (IMAP) - extension Catenate
  • RFC 4549 - Synchronization Operations for Disconnected IMAP4 Clients
  • RFC 4551 - IMAP Extension for Conditional STORE Operation or Quick Flag Changes Resynchronization
  • RFC 4731 - IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned
  • RFC 4959 - IMAP Extension for Simple Authentication and Security Layer ( SASL ) Initial Client Response
  • RFC 4978 - The IMAP COMPRESS Extension
  • RFC 5032 - WITHIN Search Extension to the IMAP Protocol
  • RFC 5092 - IMAP URL Scheme
  • RFC 5161 - The IMAP ENABLE Extension
  • RFC 5162 - IMAP4 Extensions for Quick Mailbox Resynchronization
  • RFC 5182 - IMAP Extension for Referencing the Last SEARCH Result
410653
de