Tuesday, December 7, 2010

Comparing the POP and IMAP Protocols

SkyHi @ Tuesday, December 07, 2010
In the old days of the Internet, there were a few large UNIX (or other multiuser time sharing) machines that were always connected. Your e-mail got delivered to a mailbox on whichever machine it was that you typically used, and when you logged in you could run e-mail client software directly on the local mailbox. Then gradually, the old methods gave way to the new upstarts. Many PCs and Macs, for example, were not even running UNIX, which represented remote users that were only infrequently connected. This required some rethinking of how e-mail retrieval worked; and new protocols were created, including the Post Office Protocol (POP) and the Internet Message Access Protocol (IMAP). POP and IMAP are protocols for receiving mail from a server for reading. Sending outgoing mail still requires your e-mail client to use SMTP to talk to other mail servers. For more information on SMTP, refer to Linux related article 13.

Comparing the POP and IMAP Protocols

The Post Office Protocol, or POP for short, was the first widespread attempt to solve remote e-mail access, and is still in common use today. For users on machines that either aren't capable of running a full Simple Mail Transfer Protocol (SMTP) server, or are not permanently connected, a “Post Office” machine is used. The Post Office machine is connected to the Internet full time and receives e-mail on behalf of its users via SMTP. E-mail is delivered to a local mailbox on the Post Office machine just as if it was the user's login machine under the old model. Sometime later the user connects from her workstation and the user's e-mail client will contact the POP server on the Post Office machine and transfer any waiting messages to the user's workstation. The user can then read or otherwise process e-mail on her local workstation. This very simple system has served e-mail users well for many years. The Internet Message Access Protocol, or IMAP for short, was designed to overcome some of the limitations of POP.
Instead of transferring all e-mail to the client's workstation, IMAP retains the users e-mail on the server. The method used by POP is sometimes referred to as “offline” because once you've transferred your waiting messages, you could theoretically be disconnected while you read through your e-mail. The method primarily used with IMAP is considered “online” because it expects that you're connected the whole time that you're reading your e-mail. (This should not be confused with the sort of permanent connection expected from the old style SMTP-only model. IMAP is still a “connect when you want to read mail” type of protocol.) When you connect to an IMAP server, the headers of your new e-mail are downloaded to your e-mail client. As you browse through your new mail and select a message to read, the body of that message is transferred to your workstation. Deletion, read/unread status, and other status flags are synced back to the server. If this all seems like a more complicated protocol, it is. But only the server and client programs need to worry about that, and it results in some definite advantages over using POP.

Advantages of IMAP over POP

IMAP is a superset of POP, and it can do everything that POP can (though it doesn't always do it in quite the same way). In addition, IMAP introduces a number of new features. It's becoming increasingly more common for people to use more than one computer. One at work, another at home, and perhaps a laptop when traveling. POP doesn't lend itself well to checking mail on multiple machines, and your e-mail ends up spread out across all the different clients machines. Some POP clients try to partially account for this by having a “leave mail on server” option; but POP's inability to indicate read messages means downloading the same message multiple times, which is an inelegant solution at best. IMAP was designed with multiple clients in mind. Since the status of which e-mails have been read and which haven't (among other things) is stored on the server, you don't have to wade through seen messages even if you're connecting from a client machine you've never used before. Conservation of bandwidth may not seem like a huge deal in this day of ubiquitous high-speed connections, until you're traveling and have your laptop on a slow dial-up connection and that 10MB attachment isn't nearly as critical as the information in the messages immediately after it. Because IMAP only transfers the actual messages you request, you don't have to wait for (or pay for) downloading spam, large attachments, or other e-mails you're not immediately interested in. You can even download some MIME parts of a message and not others. Multiple mail folders allow for better organization of your saved mail.
While POP accounts for only a single INBOX, IMAP allows for multiple mailbox folders to be manipulated directly from your mail client. You can create, delete, rename and transfer or copy messages between different mailbox folders. Depending on you server setup, you may even be able to have hierarchical mailbox folders that contain both messages and other mailbox subfolders within them. IMAP supports shared folders. Not only can more than one person access the shared folders, but IMAP will manage concurrent access. This is particularly useful for role-based accounts, such as a webmaster@example.com or a help desk support mailbox, which may be accessed by multiple administrators. Searching is built in to the protocol. Searches are performed on the server side to again reduce the amount of data that needs to be transferred. Matching result sets are then returned to the client for selection. This can be a huge win for large archival mailboxes, and shouldn't be underestimated.
While a POP client that is kept online for long periods of time can be configured to poll the server occasionally for new mail, IMAP avoids this problem altogether. A client connected to an IMAP server can be notified directly of any new mail that arrives. Just in case the basic status indicators of read/unread, answered, important, and so on, aren't sufficient for your needs, IMAP allows user-defined Status flags. This means you can mark messages in ways that are uniquely meaningful to you and your needs. IMAP can even support non–e-mail applications. For example, you may set up a documentation repository as an anonymous read-only IMAP folder.
This could then be available to your entire company and accessed with any IMAP client. When the client performs its initial handshake with the server, it negotiates which capabilities are supported by both machines, and which are not. This structure makes it easy to add optional features to IMAP gradually, without a major upheaval to the protocol. For example, during the initial handshake, clients and servers can negotiate support for start-TLS–style encrypted connections, something that was not in the original IMAP specification. For those with pay-by-the-minute Internet connections, or other specialized circumstances that make POP's “offline” mode seem attractive, IMAP offers a “disconnected” mode. In this mode, all new mail is copied down to the client for local processing. Deletions and status changes are kept recorded by the client, and synced back to the server next time you connect. While this trades off connection time for bandwidth usage, it will still maintain many of the other advantages of using IMAP, such as a centralized mail store accessible by multipleclients, or custom status flags.
Even though IMAP often involves less bandwidth than blindly downloading everything, its download-as-you-go approach can make it seem more sluggish to former POP users that are used to a “hit the Get Mail button, go for coffee, then come back and read mail”approach. These users may be good candidates to start with “disconnected” mode.

What do Cc and Bcc mean in a mail message?


Cc is shorthand for Carbon copy. If you add a recipient's name to this box in an Outlook e-mail message, a copy of the message is sent to that recipient, and the recipient's name is visible to other recipients of the message.


Bcc is shorthand for Blind carbon copy. If you add a recipient's name to this box in a mail message, a copy of the message is sent to that recipient, and the recipient's name is not visible to other recipients of the message. If the Bcc box isn't visible when you create a new message, you can add it.