Monday, July 23, 2007

Howto Migrate from Thunderbird to Evolution

13 comments
I know some of you are asking why, rather than how, regarding migration from Mozilla Thunderbird to Evolution. Maybe that's why there are lot of Evolution to Thunderbird migration guides, but not many vice-versa. Fear not, here is a guide, to assist who dare to migrate from Thunderbird to Evolution. The techniques described here are tested with the newer versions of both the software, namely Thunderbird 2.0.0.4 and Evolution 2.10.2. On higher versions also this should work without an issue.

I think Mozilla people are doing a wonderful job with both Firefox and Thunderbird. From my point of view Firefox is the best general purpose web browser around. It beats most proprietary browser in speed, stability, security, modularity, etc. (and don't start commenting the so and so browsers are greater or so and so is cool too. I know they may be, Fx is simply my choice. This also applies to any comparisons with Evolution too :) However Fxs' counterpart in e mail business, is not yet there at the helm. Thunderbird is a great application especially combined with Lightning addon, but from my point of view it's not there yet where Evolution is.

Evolution on the othet hand, has been the most popular Linux mail client during the past few years. It was started as a project of Ximian (later bought by Novell), but now a part of GNOME Desktop. Evolution now has a Windows XP version too (still in alpha stage as of this writing). To be more true to the point, Evolution is not just a mail client, it's a PIM application.

Evo comes very competitively on par with commercial applications like Microsoft Outlook. If you are looking for a replacement for Microsoft Outlook in a Linux environment, then Evolution is your best bet without a doubt. But on the other hand, I wouldn't use Outlook as an Evo replacement on Windows (if I have to use Windows that is. I don't hate Windows, I'm just Pro-Open Source).

Evolution comes with many rich features like calendar, appointments, tasks, memos, signature management, encryption, filters, Palm device support, developer platform, LDAP support, even Microsoft Exchange Server connectivity and lot more. Evolution is more feature rich, advanced, stable, less memory consuming than Thunderbird. One day Thunderbird might be "the" e mail client for Linux, but today Evolution is simply "the" client.

There are two methods. One is slower, proper method, good to learn more about the process and so. The second method is much quicker and great when you have a lot to migrate. So here are the steps first, then I'll describe each step more (I assume both Thunderbird and Evolution are installed. If not you might want to do it at this point. Most mainstream Linux distros ship with Evolution).


Method 1 (slower): General Steps:
  1. Backup your .thunderbird directory
  2. Configure Evolution
  3. Export your contacts from Thunderbird and import them from Evolution
  4. Import your mail archives from Thunderbird to Evolution

Yes, it's that simple. So let's now dig into details.


Method 1: Detailed:

1. Safety First (Backup your data)

Please backup the data before you try anything. Especially don't forget to get a copy of .thunderbird directory (located in the home directory, usually). All your current mails which you view withing Thunderbird are in this directory. So it is important to back this up.

(I'm not going to tell you how to copy a directory. It's out of the scope of this guide. Please refer to any documents on basic Linux operations.)


2. Configure Evolution

Create the necessary accounts in Evolution. How to configure accounts in Evolution is out of the scope of this howto. So I'll just assume that you created the desired accounts and relevant folders. For example I added my Gmail account and added several folder like Fun, Blog Comments, Personal, etc. to my Inbox folder. This is to organize your mails well. Now we are set to go.


3. Import Contacts

From Thunderbird you can export your contacts (Address Book) to several formats. Since our aim here is to import these back into Evolution, use either csv or ldif. This is how you do it.

In Thunderbird,
  • Go to Address Book
  • Select the address book you want to export, then
  • Click "Export" from "Tools" menu (Tools --> Export)
  • In the dialog give a name and a location to save the export
  • Select either "Coma Separated" or "LDIF" as type
  • Then click "save" to export

Now that exporting is completed, we can move into import these from Evolution

In Evolution,
  • Go to Contacts Window View
  • Click File --> Import
  • Go ahead and select "import a single file" option when asked
  • Select the file we created when exporting from Thunderbird
  • Then import the contacts
Note: It's better to create a new address book to import the contacts, but it's rather your choice.

Now the contacts are imported and ready to go. So let us move to the next step.


4. Import mail archives

Now let's migrate your existing mails to Evolution. Thunderbird uses standars "mbox" format for mail folder, which is the most commonly used format in Linux. Your Thunderbird mail archives are at ~/.thunderbird/xxxxxxxx.default/Mail/ (where xxxxxxxx will a different alphanumeric string). In this directory you'll have directories according to your mail accounts. In my case it's /.thunderbird/xxxxxxxx.default/Mail/Local\ Folders/Inbox.sbd/

There will be two types of files there. Files without an extention and files with .msf extention. What we need are the files without extentions. Eg: Fun, Tech, etc.

In Evolution,
  • Go to mail window view
  • Click File --> Import
  • Go ahead and select "import a single file" option when asked
  • Select the file (mail archive) you want to import and select a location to be imported. Eg: I imported "Fun" archive (not Fun.msf) into a directory named "Fun"
  • Repeat the last step for every archive you have

Done! Now you are ready to go. Your mails and contacts are now successfully migrated to Evolution. You might ask me why not straight away copy the mbox files? Why import them?
Well, actually I didn't try it. Anyone is welcome to try that and let us know. I've heard it worked for people. But personally I felt like doing this way because it is common sense, to carry out these general steps to migrate to any client using mbox format.




Method 2 (Easier):

Well, I know the above method works, but it's not going to be easy if you are to migrate a large number of mails, or many accounts. Simply the Method 1 is not scalable. :) So I've checked other ways to do this, without the hazzle of going through import and export steps. When you have more than a few folders to import this method should be much much painless and easier. But this method is only for mails, for contacts you still have to do import/export.


1. Create a folder to accommodate your mails.

You can do this either using Evo or by creating a directory under your Evo local folder directory. Better to create a folder and copy a message there (within Evolution), this will create the directory structure under ~/.evolution/mail/local/Inbox.sbd/


2. Copy the mail archive file to the new location in Evo local folder

Copy all the files in your Tunderbird mail directory into the newly created Evo directory. When you are copying files from your TB directory Eg: ~/.thunderbird/xxxxxxxx.default/Mail/
to the new Evo directory Eg: ~/.evolution/mail/local/Inbox.sbd/Thunderbird.sbd/ you only need the mbox files, there's no need to copy the .msf files.

If you don't want a separate folder for Thunderbird mails, you can just copy the files into ~/.evolution/mail/local/Inbox.sbd/

Note: There's a little tweak needed if your Thunderbird directories have spaces in their names. Eg: If your TB directories have a name like "archive prior 2008.sbd" copying it directly into Evo directory the mails would not appear as you would hope. This is because Evo doesn't use spaces in the mail directory names. So just rename them by replacing each space with an underscore ("_"). I cannot verify this note, as I haven't personally tested this. However it was reported by a user in the comments.


3. Restart Evolution

Done! Just like that, all your thousands of mails, hundreds of folders will now appear under the directory you created. Obviously this method is quicker than the previous one. You can consider the previous method a drill to learn the structure and workflow. :)



Whenever you want to backup your Evolution mail archives they are at ~/.evolution/mail/ How to completely backup Evolution data can be seen here. Newer versions of Evolution has a neet function integrated in menus which will allow to backup Evo with settings (File --> Backup settings) and restore (File --> Restore settings). I've used it a couple of times and it works fine.

This post is based on an article I've posted in LinuxQuestions.org Linux Tutorial section. It also has a discussion page. If you have Linux questions you can go and ask the wonderful online Linux community, LinuxQuestions.org.

13 comments:

  1. Great howto, thanks. I was looking for something like this.

    Regarding the transfer of emails and folders, in my case, having tenths of folders and tenths of thousands of emails to transfer, I tried the alternative method:

    (i) make a folder "thunderbird" in evo and copy an email there, just to create the folder structure.
    (ii) from nautilus, copy everything from the actual "Local Folders" folder of ~/.mozilla-thunderbird/xyz.default/Mail (from the root directory copy only the mbox files) into the evo's "thunderbird" folder in ~/.evolution/mail/local/Inbox.sbd/thunderbird.sbd
    (iii) in nautilus, search for "*.msf" files in the actual "thunderbird" folder of evo on the disk and delete them all
    (iv) on the next restart of evo, the folder structure and thousands of emails are automagically displayed.

    Stratos

    ReplyDelete
  2. PeterD9:57 PM

    Perfect, thank you very much for a succinct and complete how-to, much appreciated.

    ReplyDelete
  3. I had a pile of old mbox files I wanted to import and using the import interface
    in evolution was just too many clicks for me. I found your blog entry and
    decided I was willing to take a chance. I shut down evolution, copied all my
    mbox files into ~/.evolution/mail/local and restarted, et voila. Worked
    like a charm, no problems at all.

    ReplyDelete
  4. @peterd, Thanks. Comments like your keeps me going.

    And it was interesting to see that the most number of search related hits to my blog are for this post. I guess, I should update the posts also.

    @-j, Yes, kudos for going ahead. In fact I knew this should work, but was too lazy to edit the post. I'll do it now.

    and @stratosjl, Actually I should give you due credit. :) By the time I wote this blog post, I've just moved from TB to Evo. However your method works, and I've recommended several people this. Even -j also did that. So thanks mate.

    ReplyDelete
  5. I have to say great howto, thanks as well from me.

    It all worked, I used the Method 2.
    A few notes as it caused some confusion at first.
    I thought I create a folder (e.g. 'import') in Evolution. Then close Evolution and copy all the Thunderbird folders in there.
    So when I created this folder in Evolution I checked my ~/.evolution/mail/local and there where no folders in there.
    But a bunch of files: import,
    import.cmeta,
    import.ibex.index,
    import.ibex.index.data

    I then created a folder myself and moved all Thunderbird files in there. After restarting Evolution all was there, so no problems.

    On some investigation I found out that when I create a folder in Evolution under the 'Inbox' there will be a real folder called 'Inbox.sbd' created in ~/.evolution/mail/local/ in there are the four files mentioned above again.

    Another thing I though was missing is that you don't mention that this how to only covers moving existing local mails from Thunderbird to Evolution. The user still has to create all his email account settings, import certificates, set up filtering and signatures in Evolution.

    Thanks again and a Merry Christmas to all the FOSS users out there!

    ReplyDelete
  6. @sebastian-s Thanks for your comment and sharing your experience.

    Actually I can't believe I didn't mention that accounts have to be created separately. At the time I did my migration I didn't find any easy way to migrate account settings and filters, etc. from Thunderbird to Evo. I thought I mentioned it somewhere. :) Thanks for noting that.

    And yes, merry X'mas to you all!

    ReplyDelete
  7. Hi,
    its me again.

    Just another comment as this gave me some issues.

    Thunderbird supports folder names with spaces whereas Evolution doesn't.

    So in my case I moved
    ''~/.mozilla-thunderbird/9q4f4f4i.xxx/Mail/Local Folders/archive prior 2008.sbd''
    to
    ''~/.evolution/mail/local/Thunderbird.sbd/archive prior 2008.sbd''

    Then I fired Evolution up and the folder was there, great. But when I wanted to open the folder Evolution gave me an error that it could not open the folder.

    After some tinkering I changed the folder name to ''archive_prior_2008.sbd'' and after that Evolution opened the folder, no probs here!

    ReplyDelete
  8. @sebastian-s:

    Hi thanks for the heads up. I'll modify the guide. I've been busy the last few months and couldn't edit the post or check the comments.

    Sorry for being late to reply, and thanks for making this post better.

    ReplyDelete
  9. tissatussa4:45 AM

    thanks for this tutorial
    and you should have mentioned another source : http://www.linuxquestions.org/linux/answers/Applications_GUI_Multimedia/Howto_migrate_from_Thunderbird_to_Evolution which seems an original ..!?

    ReplyDelete
  10. @tissatussa:

    Thanks for the comment. I'm amazed by the amount of feedback I get for this tutorial.

    And about the original source, it was me who posted the tutorial in LinuxQuestions.org too. :) If you are a member of LQ, you can view the profile of the poster (SkyEye) you can see that it's me. And I do mention about that in the last paragraph. I guess you missed while skimming through.

    Anyway, glog you found it useful. :)

    ReplyDelete
  11. Re: Why Import?

    "mbox" is actually a family of several mutually incompatible mailbox formats. For more information you can go here:
    http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/mail-mbox-formats.html

    Thankfully, evolution and thunderbird use a mutually compatible "mbox" format, but still there are some minor differences. Those minor differences do not cause any problem in most cases, so copying/pasting the mbox files should just work.

    However, the import procedure should, at least in theory, fully convert the thunderbird mbox format to the evolution mbox format.

    ReplyDelete
  12. P.S. X-Mozilla-Statuses have to be handled as well.. For example an X-Mozilla-Status: 0009 signifies that the message has been deleted.

    ReplyDelete
  13. Nicolas2:05 AM

    Just.. thank you guy this post were so much helpfull !

    ReplyDelete