In POP3, once a message has been downloaded from the server, it is, by default, deleted from the server. This deletion is a real disadvantage for users who move from workstation to workstation because mail they have already downloaded remains on the workstation to which they downloaded it. IMAP4 was developed to allow users to leave their mail on the server and to allow remote access to messages. Thus, IMAP4 extends the functionality of POP3 to allow both offline and online storage of messages.
In addition, IMAP4 allows user-initiated storage of messages and nonmail messages, permits users to manage their own configurations, and allows the sharing of mailboxes. This protocol allows a client to manipulate mail messages on a server as though it were a local mailbox, unlike POP3, which can do little more than copy a message from a POP3 server to a local mailbox.
When a client connects to an IMAP4 server, it does so over TCP port 143. The IMAP4 server is always in one of four states. For each state, the client can issue a limited number of commands to the server. Some commands transition the server into the next state. It is a protocol error for the client to issue a command that is not appropriate to the present state of the server. Figure 17-14 shows the IMAP4 states for an IMAP4 server as they are described in RFC 2060. Table 17-4 lists the more common IMAP4 commands.
Figure 17-14. IMAP4 states as described in RFC 2060.
Table 17-4. IMAP4 commands
Command | Description |
---|---|
CAPABILITY | Requests a listing of the functionality of the server |
AUTHENTICATE | Indicates an authentication mechanism |
LOGIN | Identifies a client with user name and password |
SELECT | Selects the mailbox to use |
EXAMINE | Selects a mailbox in read-only mode |
CREATE | Creates a mailbox |
DELETE | Deletes a mailbox |
RENAME | Renames a mailbox |
SUBSCRIBE | Adds a mailbox to the server's set of active mailboxes |
UNSUBSCRIBE | Removes a mailbox from the server's set of active mailboxes |
LIST | Lists a set or subset of mailboxes |
LSUB | Lists subscribed mailboxes |
STATUS | Requests the status of a mailbox |
APPEND | Adds a message to a mailbox |
CLOSE | Effects pending deletions and closes a mailbox |
EXPUNGE | Effects pending deletions |
SEARCH | Searches a mailbox for messages satisfying a given criterion |
FETCH | Fetches specified body parts for a given message |
STORE | Changes the data of specified messages in a mailbox |
COPY | Copies a message to another mailbox |
NOOP | No action required |
LOGOUT | Closes the connection |
IMAP4 is, for the most part, self-administering. You may want to consider a couple of items, however. Figure 17-15 shows the General tab of the property sheet for the IMAP4 default virtual server. Because IMAP4 has the ability to request public folders, Microsoft's implementation of this protocol lets you choose whether to show public folders to the client. In addition, you can enable fast message retrieval here, which will cause Exchange Server to approximate the message sizes, rather than calculate their exact size. This estimation is done only if the clients do not need to know the exact message sizes for retrieval.
Figure 17-15. IMAP4 default virtual server properties.