Microsoft Outlook 2003, Outlook Express, MSN Messenger, the MSN browser client, and other email clients that work with Windows XP, support a feature on the XP logon screen that displays a count of any unread email messages next to the user's name. This is a handy way to tell at a glance if you have email waiting. However, the Windows XP message count feature sometimes falls out of sync and becomes unreliable.
The Windows XP unread message count is kept in the registry, under:
Each individual mail account that has messages pending is stored as a subkey, with a matching DWORD value within named MessageCount. A BINARY value named TimeStamp tracks the last time that particular email account was checked.
If the message count for any particular account falls out of sync or becomes damaged, you have three options:
- Delete (or rename) the MessageCount and TimeStamp values in each of the account subkeys. The next time you log on and open your email client, they should be recreated automatically.
- Delete the account subkey entirely. Again, the next time you log in and open your email client, this should cause the key to be recreated from scratch.
- Add (or edit) a DWORD value named MessageExpiryDays within the UnreadMail key and set it to 0. This will completely disable the unread mail count. If you set it to some other value, the email accounts listed will only be included in the logon screen if they've been checked within the given number of days.
If the unread message count keeps falling out of sync, disable it completely (as per step 3), and look into the possibility that the email client you're using may have a bug. Keeping the above-mentioned registry entries updated is the responsibility of the email client -- i.e., Microsoft Outlook -- not the Windows XP operating system.
Another way to disable the message count is to change the access permissions on the UnreadMail key -- but I'm personally wary of doing this, since changing permissions on registry keys can sometimes have unpredictable side effects. Setting MessageExpiryDays to zero and deleting the account subkeys should do the trick.
About the author: Serdar Yegulalp is editor of the Windows Power Users Newsletter.
This tip was helpful, but I found it to be incomplete when my unread mail counts failed to update anymore.
I had to perform the following steps to resolve the issue:
- Follow step 2 (per the directions above) and delete the subaccount subkey.
- Run Outlook Express 6.0 (the client I am using) and then export accounts to .IAF files with one per account.
- Remove all accounts in Outlook Express.
- Exit Outlook Express (this turned out to be a critical step; simply removing the accounts and then immediately reloading them failed to fix anything).
- Run Outlook Express again and then import the accounts that were previously exported.
The subaccount key(s) should now be restored and the unread message count on the Windows XP login screen should now be up to date and working again.
You can confirm key restoration by looking in the registry, but going to the Windows XP login page should confirm it as well (if you have any unread mail).
Do you have comments on this tip? Let us know.