POP3 vs IMAP – What’s the difference and which one is better?

At last, perfect replacement for Outlook Express and Windows Live Mail is available, called OE Classic - Click here to download!

So, you’ve got your nice little email program (such as OE Classic), and you want to configure an email account and it offers you a choice between POP (or POP3) and IMAP but you don’t know which one to choose. What is the difference?

First off, both POP and IMAP are email protocols designed to fetch emails from a server. As email is a two-part system, the first part being an email program which you install on your computer, tablet or smartphone, called the email client, and the second part being the email server.

Think of it as a postman and a post office.

The postman (email client) goes to the post office (email server) to fetch some emails. Post offices (email servers) communicate between themselves to send emails and finally a postman on the other end (another email client) fetches the mail from another post office. In reality, it is a bit more complicated than that, but that is the general idea.

To communicate, both the client and the server must agree on a common standard, or protocol – and POP and IMAP are the names of these protocols, and they represent a set of commands (or a vocabulary if you will), designed to make it possible for the client and the server to understand each other.

Now, do not be confused by the name POP3 as that is also just POP, just with the number 3, which indicates the version of the protocol (before POP3 there were POP1 and POP2 which are no longer in use today).

So let’s start with POP protocol.

POP, which stands for Post Office Protocol is the older and simpler of the two protocols and it is designed with a simple goal of fetching emails off of a server by a single email client and then removing them from the server. It is also possible to keep emails on the server but more on that later.

How does POP work?

1) First, an email client connects to the server and authenticates with the username and password you put into its account settings. At that moment, the mailbox on the server is locked and you cannot access it from an another computer or device – POP protocol specifies that another connection is disallowed, while the current one is in use. The lock is there to prevent 2 computers to access the mailbox at the same time as POP is not designed for that. (POP commands used: USER, PASS, APOP).

2) Then it examines the list of messages the server offers and figures out which ones are new. The server replies with the list of messages and their unique identifiers. POP can only check the contents of your Inbox folder messages and that is the only folder it can access usually. (POP commands used: STAT, LIST, UIDL, TOP).

3) After establishing the new messages list, email client proceeds with the download, one message at the time. (POP commands used: RETR, TOP).

4) At the end of the session, email client decides, based on the options you’ve set whether or not it should delete some emails. Deleting messages can happen immediately or after a few days, again depending on the options in your email client. When it is done, it disconnects. (POP commands used: DELE, QUIT).

5) Right after the client has disconnected, the server performs actual deletion of messages (as they cannot be deleted before the QUIT command is sent by the client) and frees the connection for another email client (or a repeated connection by the same email client).

All of the above happens very quickly due to POP protocol being very lightweight and simple.

How does IMAP work?

1) Just like with POP, an email client connects to the server and authenticates with your username and password. (IMAP commands used: LOGIN).

2) At this point an email client can choose which folder (also called mailbox) it wants to access and selects that mailbox. For example that folder might be the “Inbox”, “Junk”, “Trash” or any other folder available on the server. (IMAP commands used: SELECT).

3) Then, usually it fetches the list of messages in the selected folder and updates the local list it already has, removing the messages which are no longer present and adding the new ones to the local list. In other words, it synchronizes local list to match the server list. (IMAP commands used: FETCH).

4) Since IMAP is more complicated, now a few things can happen – an email program can continue checking other folders like “Sent”, “Deleted”, “Drafts”, “Junk” and so on, so it might return to the step 2 in this example. In that process it will again update local lists and synchronize it with the server message list. However, it can also choose to remain idle in the current folder and remain connected, waiting for new messages to arrive. You can also search for messages in folders as IMAP also offers search capability. (IMAP commands used: IDLE, SELECT, FETCH, SEARCH).

5) As IMAP is designed to be “always online” any messages you download are just stored temporarily, as a cache, to avoid downloading it again. If a message is deleted from the server, for example by another email program or device, the currently running program will simply update its cache to reflect the changes done on the server the next time it synchronizes the folder. Note that unlike POP, IMAP doesn’t prevent other clients to connect at the same time. Multiple connections may happen and they will eventually be synchronized between each other.

6) If you delete a message, the deletion happens immediately and the change is again synchronized with every other client or device connected at the same time. The same happens if another email client deletes a message – eventually it is synchronized to your email program and you see the change as well. Additionally, IMAP supports flags such as \Seen, \Draft, \Deleted, \Answered, \Flagged, common among email clients to indicate if the message is read, draft, deleted, replied and flagged (starred), respectively. (IMAP commands used: COPY, MOVE, STORE, EXPUNGE).

7) At a certain point you decide to disconnect from the server and your synchronization then stops and resumes the next time you connect to the server. If your email client has cached the messages they can be still read, while offline, but if the messages are not cached, an Internet connection will be required to read them. Also, if you decide to move message to another folder or delete them, an Internet connection will again be required as the change cannot be performed while being offline.

So unlike the POP protocol which is like fetch-and-delete kind of protocol better suited for offline use on a single device, IMAP is more like always-online protocol which just shows you a window into the messages stored on the server (or in the cloud, if you will).

What about advantages and disadvantages of both and how to choose one?

The choice really depends on your situation.

To put it simply:

  • If your goal is just to download messages on a single computer and remove them from server, then POP is an easy choice, giving you just that. It is designed to be fast and simple for use on a single device.
  • If you want to synchronize or use multiple devices or computers and you want to have identical copy of your email on each of those devices, including all of the folders and messages, then you can use IMAP instead.

Advantages of POP

– It is fast and lightweight and uses less bandwidth (may not be an issue nowadays with fast connections but might be an issue in a rural area or with a mobile connection). This also makes it easier choice when access to the Internet is not available all the time.

– It downloads messages from server onto your computer.

– You have a local copy of messages which means you can read them even if you are disconnected from the Internet.

– Emails are removed from the server so if your email account is hacked nobody can read your older emails as they are downloaded onto your computer. Note though that many email programs (including OE Classic), allow you to leave a copy of messages on the server and delete after a certain time has passed. Option like this can help you download email onto multiple computers.

– Organizing your email is much faster as they are basically just local files so there isn’t a need to communicate the change with the server. So it can be done while offline as well.

– If you lose access to your email account or your email account is hacked, your emails are stored on your disk drive and are not in the cloud (on the server).

– The size of the mailbox only depends on the size of your disk drive and you don’t have to pay for the extra space on the server. Also, if your server offers low storage capacity POP will help you keep that storage clean if you choose to delete messages from server after downloading them.

Disadvantages of POP

– Since it usually deletes messages from the server, you have to have a backup plan for your emails. If your disk drive fails for any reason, so will your messages as well as they are just files on the disk drive. Note that this applies to all of your data which you store on your disk drive, not just emails.

– It does not synchronize server folders and messages. The only folder it has access to is the “Inbox” folder but it is not synchronized. Even though many email clients (including OE Classic) allow you to leave a copy of messages on the server and with that option enabled it is possible to download emails onto multiple computers, when you want to delete a message from one computer it is not deleted from all of them so they are not synchronized. This is especially a problem if you want to use email from multiple devices like mobile phone, computer, tablet and want to have identical copy of all folders and messages across all of your devices.

– It only can access “Inbox” folder unlike IMAP, so if your emails end up in the server “Spam” folder you cannot see them – you have to use webmail or IMAP to fetch “Spam” folder messages as well. Although some POP servers do offer tricks to fetch messages from different folders, this is not really a rule and many of them don’t so the lack of access to the server folders makes it a disadvantage.

– If you lose your computer data, have your device stolen, broken etc., your emails will be lost with it unless you have a backup. The same goes if your email folders are damaged. Having a backup is important.

Advantages of IMAP

– If you use multiple computers or devices you can have your email folders and messages synchronized between these devices – if you delete a message, add or rename a folder, receive a message, change the message status from read to unread or add a flag – all of these changes are registered across all of the devices connected to that email account, when they synchronize. So you can access it on the go or in the office (or at home).

– Your messages are backed up in the cloud so aside from local cached copy there is also a cloud (server) copy. Servers, if properly maintained, are regularly backed up so your emails are safer that way.

– More people can use the same mailbox and organize/delete/flag messages. This makes it a better choice for single mailbox shared between team members, for example if a single company mailbox is answered by multiple employees.

Disadvantages of IMAP

– IMAP involves much more communication with the server so it will eat up more bandwidth and Internet. Also, as each change has to be registered (synchronized) with the server, it is slower, so it depends on your Internet speed and server speed. Servers which are unstable or slow might cause problems so the server has to be good as well.

– If your server is unreachable, hacked, or if you’re offline, you cannot read your email except the cached messages in your email client. If messages have not been cached, you won’t be able to read them. You also cannot organize your emails while offline – move, copy, flag, mark as read, all of these operations require to be synchronized with the server so you have to be online to perform them.

– If you lose access to your email account, you may also lose access to all of your messages, again, unless they have been cached locally.

– The size of your mailbox depends on the amount of disk space you have available on your email server and you may need to pay for the extra space if it is not sufficient.

IAF File Format Specification And Field ID Assignment Table

At last, perfect replacement for Outlook Express and Windows Live Mail is available, called OE Classic - Click here to download!IAF is a file format used for importing and exporting account information in Microsoft Outlook Express 6, Microsoft Windows Mail (Windows Vista), Microsoft Windows Live Mail and older versions of Microsoft Outlook. It can be decoded by code already available on the Internet. Here are a few links to the decoder code:

The above code works just fine however it has a problem – a good number of IAF fields are not recognized, especially for Windows Live Mail IAF file format. So here is my update on this topic and most up to date list of fields I could come up with. Also, this post contains a bit of documentation on IAF file format because I found that it is rather hard to find online and Microsoft never revealed IAF file format specification (to my knowledge – correct me if I am wrong).

Essentially, IAF comes in 2 flavors:

  • WideChar version (16-bit characters – UTF-16LE format), used by Windows Mail and Windows Live Mail
  • NarrowChar version (8-bit characters, encoded in specific charset encoding – usually the same like OS charset) used by Outlook Express 6 and older Microsoft Outlook

For NarrowChar version assignment of Field IDs is more or less known and available in the decoder code above. However, for the WideChar version, not all fields are recognized.

The above code contains a list of Field IDs with their names and assignment. The purpose of this post is to complement that list with some additional Field IDs and offer additional explanation of how the fields are organized – which can help in further reverse engineering of the IAF file format.

From what I could discover, it appears that the Field IDs are 9-digit numbers organized into sections which begin with certain 3-digit number which I will call “sections”. Between the Field IDs there are gaps, probably left intentionally for future upgrades to the file format without breaking the old format. The Field ID ranges are organized as following:

  • 305-306 – General settings section
  • 311-314 – IMAP settings section
  • 321-323 – HTTP settings section
  • 325-326 – NNTP settings section
  • 331-332 – POP3 settings section
  • 338-339 – SMTP settings section

The numbers above represent only the first 3 digits of a 9-digit Field ID, so for example, a full Field ID might be:

305464304 – belongs to “General settings” section and is Field ID for AccountName.
311952368 – belongs to “IMAP settings” section and is Field ID for IMAPServer.

The bold part of the Field ID number above represents the number from the above section range. This is similar for all other fields as defined in the list.

So, as promised above – here is full list of the Field IDs, including the ones missing from the above decoder code. You will notice that some fields are still unknown.

Unknown fields have an “UNKNOWN” in the comment and are prefixed by “GENERAL-“, “IMAP-“, “HTTP-“, and “NNTP-“. As it seems, there are no unknown fields in the POP3 and SMTP sections that I have discovered so far.

If you know what the UNKNOWN fields are used for or if you have additional ones to complement this list, please do leave a comment below this post to help in reverse engineering of the IAF file format so that a fully featured decoder can be written at last. I will of course update this post with the latest up-to-date table and share it with everyone.

The list is public domain and you are free to use in your code, for any purposes, commercial or any other (I would be happy if you notify me about it, but this is not needed).

You can also decode your own IAF files (for example, if you want to extract forgotten password) with the online decoder found here:
https://www.oeclassic.com/iaf-decoder

// Example IAF header
// "\x66\x4D\x41\x49\x00\x00\x05\x00\x01\x00\x00\x00"
// Offs 00-03 = 'fMAI' (IAF magic string)
// Offs 04-05 = 0000
// Offs 06    = 05 or 07 (05=Outlook Express format/8-bit char, 07=Unicode Windows Mail/Windows Live Mail format/UTF-16LE char)
// Offs 07    = 00
// Offs 08    = 00 or 01 or 02 (00=News acount, 01=IMAP/POP3 account, 02=Active Directory/LDAP account)
// Offs 09-0a = 000000

// IAF fields - PHP code
private $_fieldsTable = array(

// 305-306 -> General settings
'AccountName'              => array('305464304', 'nullstr_fmt',  '',          ''),
'TemporaryAccount'         => array('305595369', 'ulong_le_fmt', 'bool_re',   ''),
'GENERAL-305660911'        => array('305660911', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail - NNTP only?
'ConnectionType'           => array('305726441', 'ulong_le_fmt', 'iaf_ct_re', ''),
'ConnectionName'           => array('305791984', 'nullstr_fmt',  '',          ''),
'ConnectionFlags'          => array('305857513', 'ulong_le_fmt', 'num_re',    ''),
'AccountID'                => array('305988592', 'nullstr_fmt',  '',          ''),             // Win32-Outlook-IAF fix
'BackupConnectionName'     => array('306054128', 'nullstr_fmt',  '',          ''),
'MakeAvailableOffline'     => array('306185193', 'ulong_le_fmt', 'bool_re',   ''),
'ServerReadOnly'           => array('306316277', 'ulong_le_fmt', 'bool_re',   ''),
'GENERAL-306381801'        => array('306381801', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail

// 311-314 -> IMAP settings
'IMAPServer'               => array('311952368', 'nullstr_fmt',  '',          ''),
'IMAPUserName'             => array('312017904', 'nullstr_fmt',  '',          ''),
'IMAPPassword'             => array('312083446', 'nullstr_fmt',  '',          'iaf_password'), // NOTE - Windows Live Mail does not export passwords so this field can be absent
'IMAPAuthUseSPA'           => array('312214517', 'ulong_le_fmt', 'bool_re',   ''),
'IMAPPort'                 => array('312280041', 'ulong_le_fmt', 'num_re',    ''),
'IMAPSecureConnection'     => array('312345589', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'IMAPTimeout'              => array('312411113', 'ulong_le_fmt', 'num_re',    ''),
'IMAPRootFolder'           => array('312476656', 'nullstr_fmt',  '',          ''),
'IMAPUseLSUB'              => array('312673269', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'IMAPPolling'              => array('312738805', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'IMAPFullList'             => array('312804341', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'IMAPStoreSpecialFolders'  => array('313000949', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'IMAPSentItemsFolder'      => array('313066480', 'nullstr_fmt',  '',          ''),
'IMAPDraftsFolder'         => array('313197552', 'nullstr_fmt',  '',          ''),
'IMAPPasswordPrompt'       => array('313525237', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'IMAPDirty'                => array('313590761', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'IMAPPollAllFolders'       => array('313656309', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'IMAPDeletedItemsFolder'   => array('313721840', 'nullstr_fmt',  '',          ''),             // added from Vista
'IMAPJunkEmailFolder'      => array('313787376', 'nullstr_fmt',  '',          ''),             // added from Vista
'IMAPInboxFolder'          => array('313852912', 'nullstr_fmt',  '',          ''),             // added from Windows Mail and Windows Live Mail
'IMAP-313918453'           => array('313918453', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail
'IMAP-313983989'           => array('313983989', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail
'IMAP-314049525'           => array('314049525', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail
'IMAP-314115061'           => array('314115061', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail
'IMAP-314180597'           => array('314180597', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail

// 321-323 -> HTTP settings
'HTTPServer'               => array('321782768', 'nullstr_fmt',  '',          ''),
'HTTPUserName'             => array('321848304', 'nullstr_fmt',  '',          ''),
'HTTPPassword'             => array('321913846', 'nullstr_fmt',  '',          'iaf_password'),
'HTTPPasswordPrompt'       => array('321979381', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'HTTPAuthUseSPA'           => array('322044905', 'ulong_le_fmt', 'bool_re',   ''),
'HTTPFriendlyName'         => array('322110448', 'nullstr_fmt',  '',          ''),
'HTTPDomainIsMSN'          => array('322175989', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'HTTPPolling'              => array('322241525', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'HTTPAdBarURL'             => array('322307056', 'nullstr_fmt',  '',          ''),
'HTTPShowAdBar'            => array('322372597', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'HTTPMinPollingInterval'   => array('322438135', 'ulong_le_fmt', 'num_re',    ''),
'HTTPGotPollingInterval'   => array('322503669', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'HTTPLastPolledTime'       => array('322569207', 'ulong_le_fmt', 'num_re',    ''),
'HTTP-322634741'           => array('322634741', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail
'HTTP-323552245'           => array('323552245', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Vista
'HTTP-323683317'           => array('323683317', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail
'HTTP-323748853'           => array('323748853', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail

// 325-326 -> NNTP settings
'NNTPServer'               => array('325059568', 'nullstr_fmt',  '',          ''),
'NNTPUserName'             => array('325125104', 'nullstr_fmt',  '',          ''),
'NNTPPassword'             => array('325190646', 'nullstr_fmt',  '',          'iaf_password'), // NOTE - Windows Live Mail does not export passwords so this field can be absent
'NNTPAuthMethod'           => array('325321717', 'ulong_le_fmt', 'iaf_am_re', ''),
'NNTPPort'                 => array('325387241', 'ulong_le_fmt', 'num_re',    ''),
'NNTPSecureConnection'     => array('325452789', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'NNTPTimeout'              => array('325518313', 'ulong_le_fmt', 'num_re',    ''),
'NNTPDisplayName'          => array('325583856', 'nullstr_fmt',  '',          ''),
'NNTPOrganizationName'     => array('325649392', 'nullstr_fmt',  '',          ''),
'NNTPEmailAddress'         => array('325714928', 'nullstr_fmt',  '',          ''),
'NNTPReplyToEmailAddress'  => array('325780464', 'nullstr_fmt',  '',          ''),
'NNTPSplitMessages'        => array('325846005', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'NNTPSplitMessageSize'     => array('325911529', 'ulong_le_fmt', 'num_re',    ''),
'NNTPUseGroupDescriptions' => array('325977077', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'NNTPPolling'              => array('326108149', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'NNTPPostingFormat'        => array('326173673', 'ulong_le_fmt', 'iaf_pf_re', ''),
'NNTPSignature'            => array('326239216', 'nullstr_fmt',  'regkey_re', ''),
'NNTPPasswordPrompt'       => array('326304757', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'NNTP-326370281'           => array('326370281', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail - NNTP only
'NNTP-326632425'           => array('326632425', 'nullstr_fmt',  '',          ''),             // UNKNOWN - added from Windows Mail and Windows Live Mail - NNTP only

// 331-332 -> POP3 settings
'POP3Server'               => array('331613168', 'nullstr_fmt',  '',          ''),
'POP3UserName'             => array('331678704', 'nullstr_fmt',  '',          ''),
'POP3Password'             => array('331744246', 'nullstr_fmt',  '',          'iaf_password'), // NOTE - Windows Live Mail does not export passwords so this field can be absent
'POP3AuthUseSPA'           => array('331875317', 'ulong_le_fmt', 'bool_re',   ''),
'POP3Port'                 => array('331940841', 'ulong_le_fmt', 'num_re',    ''),
'POP3SecureConnection'     => array('332006389', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'POP3Timeout'              => array('332071913', 'ulong_le_fmt', 'num_re',    ''),
'POP3LeaveMailOnServer'    => array('332137461', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'POP3RemoveWhenDeleted'    => array('332202997', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'POP3RemoveWhenExpired'    => array('332268533', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'POP3ExpireDays'           => array('332334057', 'ulong_le_fmt', 'num_re',    ''),
'POP3SkipAccount'          => array('332399605', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'POP3PasswordPrompt'       => array('332530677', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),

// 338-339 -> SMTP settings
'SMTPServer'               => array('338166768', 'nullstr_fmt',  '',          ''),
'SMTPUserName'             => array('338232304', 'nullstr_fmt',  '',          ''),             // NOTE - If SMTPAuthMethod is set to "Use incoming" (value=02) then username/password will be absent
'SMTPPassword'             => array('338297846', 'nullstr_fmt',  '',          'iaf_password'), // NOTE - Windows Live Mail does not export passwords so this field can be absent
'SMTPAuthMethod'           => array('338428905', 'ulong_le_fmt', 'iaf_am_re', ''),
'SMTPPort'                 => array('338494441', 'ulong_le_fmt', 'num_re',    ''),
'SMTPSecureConnection'     => array('338559989', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'SMTPTimeout'              => array('338625513', 'ulong_le_fmt', 'num_re',    ''),
'SMTPDisplayName'          => array('338691056', 'nullstr_fmt',  '',          ''),
'SMTPOrganizationName'     => array('338756592', 'nullstr_fmt',  '',          ''),
'SMTPEmailAddress'         => array('338822128', 'nullstr_fmt',  '',          ''),
'SMTPReplyToEmailAddress'  => array('338887664', 'nullstr_fmt',  '',          ''),
'SMTPSplitMessages'        => array('338953205', 'ulong_le_fmt', 'bool_re',   'iaf_bool'),
'SMTPSplitMessageSize'     => array('339018729', 'ulong_le_fmt', 'num_re',    ''),
'SMTPSignature'            => array('339149808', 'nullstr_fmt',  'regkey_re', ''),
'SMTPPasswordPrompt'       => array('339215349', 'ulong_le_fmt', 'bool_re',   'iaf_bool')
);

How to clean up your Inbox

At last, perfect replacement for Outlook Express and Windows Live Mail is available, called OE Classic - Click here to download!New email keeps on coming every day. You carefully read it, file it, archive it, move it to various folders, reply to it, but it just keeps on coming. Forgetting to file one email often means leaving it “for later” and that later never really comes. Time passes and you end up accumulating tons of messages in your Inbox. And you never seem to reach your “Inbox Zero” nirvana. Does this sound familiar?

“Inbox Zero” is actually a great idea but for many, it is hard to achieve, due to just one simple thing – lack of simple habit of cleaning up.

So here are 5 ideas how to clean up your email to eventually reach empty Inbox.

1) Each day, set aside a minute or two to clean up 5-10 emails which are not needed and can be deleted. The key here is to develop a habit. It does not take much time to clean up 5-10 emails. To file them to proper folders or to simply delete them. It may seem overwhelming to see tons of messages in the Inbox and quickly give up, but the fact is that the more you clean it up, the less there will be and with time, just as they accumulated, they will be cleaned up. If you don’t know where to start – start with the oldest ones. They are most likely best candidates to be deleted.

2) Speaking of delete – do not be afraid to use delete. It might seem a good idea to file everything, archive into special folders and so on, but some things are simply not worth keeping. Do not attempt to be perfect, as that will not get you nowhere. Do you file every conversation you had with every person (in real life that is)? Of course not. So why do it with email? Many messages are simply not worth keeping once they have been read.

3) Use the rule – if it is older than 2 years, it will likely never be read again and can be deleted.

4) If you replied to it and there is nothing there to keep, delete it immediately.

5) If you really have to keep some messages, then at least remove them from Inbox. Move them to “Archive” folder or something of that sort. Leaving Inbox empty will remove visual clutter and will give you some sense of accomplishment at the end of a day.