Microsoft Outlook Express Corruption

Mai Tai Bar, Melbourne, Australia, 2006-05-05

#sysadmin #tools

The drivers provided with the IBM T42, and probably other similar models, are slightly dodgy such that sometimes when you suspend and resume Windows, network connections don’t work. I’ve hit this problem a few times since I’ve had my T42, and normally a quick restart does the trick. Last night I ended up in the situation where my network wasn’t working, and I couldn’t restart because Synergy had hung, and my mouse and keyboard weren’t working, so a hard-boot was the only option. After that everything was back to normal.

Or was it..

I use Microsoft Outlook Express as my email client, mostly because of the built-in Hotmail connectivity. This morning when I started OE up, all the messages in my Inbox were just plain gone, as were all of the subfolders. I figure that Outlook Express must have corrupted it’s own “database” last night when I did the hard boot. After recovering from the intial shock, and subsequently kicking myself for not having backed up my mail for 3 months, I poked around and found my Outlook Express data was all still on my hard drive, apparently intact. Okay, so it’s all there, but OE has fritzed and can’t get into it anymore. Should be a simple task to link it all back in somehow, right?

Unfortunately Microsoft’s tools for working with Outlook Express’ DBX file format are.. well there aren’t any tools actually. There are however a plethora of commercial offerings for every taste, ranging from the cheap-and-probably-functional, through the dubious-and-probably-loaded-with-spyware, to the crisp-clean-and-reassuringly-professional. The only problem is that I don’t want to pay any money to get my email back. Why is it that nearly everything written in Microsoft languages is commercial? The Open-Source community is still in it’s infantcy in the Microsoft sphere of influence. Outlook Express Shareware offerings are all crippled to only extract the first 5 or 10 messages, so my options seem to be hand over a (admittedly small) chunk of change, or keep looking for a free tool to do the job.

Sometimes to find what you’re after, you just need to pick the right search terms. My original searches for “Outlook Express Database Recovery” yielded innumerable commercial tools. My next search for “DBX file format” was much more fruitful, and yielded this article on converting DBX files for use by Unix mail clients. That article referenced DBXConv written by Ulrich Krebs, which has turned out to be an excellent tool.

To use DBXConv to email from my corrupted Microsoft Outlook Express database, I did the following:

  • Downloaded and unzipped DBXConv
  • Copied the DBX files I wanted to recover into the DBXConv directory. I decided just to put my data in that directory. If you were going to be using DBXConv on a regular basis, you’d probably want to add it’s location to the PATH environment variable. I didn’t grab all of my DBX files - I skipped ones like my Hotmail Inbox, Bulk Mail, and Deleted Items folders as they will just be recreated by Microsoft Outlook anyway.
  • Now I ran DBXConv, telling it to extract all the messages to *.eml files with the command:
dbxconv.exe -eml *.dbx
  • Finally I re-created the missing folders in Microsoft Outlook Express one by one, and dragged the extracted *.eml files into those folders. This re-added the emails which have retained their dates, sender information and even attachments.

So if you ever find yourself facing a corrupted OE database, and are stingy like me, DBXConv is the way to go.