With POP, your mail client (app, program) checks to see if there is any new mail since the last time you checked and downloads any new ones to your device. You can choose to allow for the mail to remain on the server, or get transfered from the server to your mail client. In the latter case it is deleted from the server once it has been downloaded to the mail client.

If you leave mail on the server, the most you can do is tell the server to delete any mail that you have deleted on your client, or to delete mail older than x number of days. All the flags of whether you have seen the email, replied to the email, forwarded the email cannot be replicated (notice for instance how the mail envelope icon changes on Outlook depending on what you have done to the mail).

This is fine if you download, read and store all your email in one place, e.g. your mail client like Outlook, where the flags are preserved, or if you really don't care about the flags like in GMail.

If you check your email in multiple places using different clients, e.g. one at work, one at home, webmail when you are on holiday, then this is where IMAP comes in...


A more sophisticated protocol, what it does is mirror the mail server. Your mail client not only checks to see if there is new mail from the last time you checked, but also update any flag (e.g. read mail, mail forwarded, mail deleted etc) changes since the last time.

IMAP is more flexible in allowing either the header only to be downloaded, or a set size (in kilobytes) to be downloaded (some POP clients do this too, but it's really a non-standard POP feature).

If you organize your mail on your mail server - i.e. file everything on it in different folders, you can even synchronize the various folders. You can tell your client which folders you want sync'd and which not to. And when you have new mail in that folder it won't be dragged to the inbox like POP does.

This is the best protocol to use if you retrieve your messages from multiple locations (office, home, smartphone, etc).