Migrating from Outlook to Thunderbird


Woke up Sunday to find, the latest Windows 10 update to Jill's computer broke the network drivers.  After multiple increasingly long-shot attempts to get a network connection working again, we decided to dump Windows and install Linux.

Installing Ubuntu 16.04 LTS was fairly straightforward.  It was made even quicker by the fact that under Windows, the \Users\ directory was already on a separate physical volume from the OS.  That way, the data was all passing through this process untouched.  Setting up the browser was also easy, thanks to the cross-instance Chrome synchronization.  To reconnect the data, I just deleted the empty Documents, Pictures, Music and Videos directories from the /home/jill directory.  Then I replaced them with symlinks to the corresponding directories under /Users/jill on the larger volume.

The final basic set-up task was email.  Since Jill had been using Outlook, this promised to be the most involved and fiddly task.  The goal was to replicate as much of the Outlook user experience as possible on a Linux client machine.  That is to say, simply switching to web mail was not considered.

The two client programs with the broadest feature set to pull this off are, Evolution and Thunderbird.  My own recent experience with Evolution is decidedly negative, but mostly not for reasons related to how Jill will use her email client.  In any case, I decided that Thunderbird was the first choice.  (Not just my first choice, either: this review, like a number of others, has Thunderbird and Evolution ranked 1-2.)  So, if Thunderbird is ultimately not to Jill's liking, Evolution is on deck.

The task before me now was, migrate all the existing email and contact info into Thunderbird from Outlook.  Naturally, extracting user data from a proprietary format (.PST) is quite an obstacle course.  Here's the navigation I worked out:

  1. First step was to run readpst against the .PST file.  That nicely extracted all the folders in their hierarchy, and dropped a single RFC 4155 MBOX file into each folder with that folder's messages.
  2. It would have been nice to have a tool that would walk the entire folder hierarchy and replicate it in Thunderbird's Local Folders store with the messages pulled into each.  Alas, this is not quite fully realized anywhere that I could find.  But I did find the components of what I wanted to do in the Import/Export Tools add-on.  In the first step, it faithfully recreated the entire folder hierarchy, albeit empty.
  3. In the next step, I had to import each MBOX into its folder.  To give me just one extra annoying task to do, instead of importing the messages into the target folder, it created a new subfolder called "mbox" and put the messages there.  I had to move the messages to the parent folder and delete the "mbox" subfolder.  Attempts to accept Import/Export Tools' offer to import the entire hierarchy of email folders resulted in 40+ folders named "mboxNNNN" in a single Thunderbird folder, with only the content of the messages to determine where they actually belonged.  Not really workable.
  4. The last task was importing the contacts.  While readpst had emitted a lovely VCF file with all the contacts in it, for no obvious reason that file was named, simply, "contacts."  I had to add a .vcf extension for the Import function of Thunderbird's Address Book to recognize it.

Well, this is done.  I now understand why there is a market for commercial products that do this: it's one thing to do for a single user, but I would probably lose my mind if I had to do it for 20.  Let alone, 20,000!

This article was updated on May 9, 2023

David F