The Solution

Keep the Mail on the Server

The most obvious problem with POP was that all mail had to be downloaded from the server. So, the solution was to get change that concept. By moving mail back on to the server, the problem of people moving from one machine to another was quickly solved. But, if server's were going to hold onto mail, a more sophisticated way of accessing that mail was required. MUA's already had concepts like multiple mail folders, indexing of mail messages, etc. Neither POP nor NFS allowed for any of these concepts to be leveraged effectively on the server.

A New Protocol: IMAP

So a new protocol was born: IMAP. While IMAP was similar to POP, it was a much more sophisticated protocol. IMAP allowed for clients to grab just the summary information about messages (who from, who to, message size, message date, status, etc.) from the server. IMAP also added a query language which allowed users to have searches performed on the server and the results passed back to the client. In addition, if a message was a multipart message (such as with MIME), IMAP allowed a client to parts of the message separately. This was a tremendous boon to remote users as they could select which parts of their mail they wanted to see first. These three features significantly improved mail reading performance for remote users.

Multiple Folders and Users

IMAP also introduce the concept of multiple mail folders on the server. Certainly, if all one's mail was going to exist on the server, one would want to organize it. So IMAP allowed messages to be moved and copied between folders, and for new folders to be created.

IMAP also better supported multiple users by allow multiple simultaneous sessions on the same mailbox, with status notifications being delivered to all. Additionally, it allowed for user-definable status fields for each message, with updates to these fields delivered to all sessions.

Disconnected Operation

IMAP also introduced the notion of "disconnected" mode. The idea was that an MUA could connect to a mail server, download a copy of e-mails of interest to the user, and then disconnect from the server. The user could delete message, move them around, read some, etc. At a later date, the user could reconnected to the mail server, and have all these changes updated on the server while simultaneously receiving new messages. This concept was terribly powerful for remote users, particularly those that either had to pay per-minute access charges or those who spent periods of time unable to access the server (typically while travelling).

Previous Next