Next Previous Contents

2. The Procedure

2.1 Install an IMAP server (temporarily!) on your Linux box

Installing things varies from Linux distribution to distribution, so I will use RedHat 7.0 as an example. First you need to install the correct package, which generally is named "imap".

 cd /home/redhat-7.0-cd/RedHat/RPMS
 rpm -i imap*

Actually, since I had a "workstation" install, I also had to install the xinetd package; rpm gave me an error which told me to do this. And, of course, it was on the second CD of RedHat 7.0. Debian users using "apt-get" don't have to worry about such issues.

Next, we need to enable the imap server. This is usually controlled by a line in the file /etc/inetd.conf:

 #imap    stream  tcp     nowait  root    /usr/sbin/tcpd        /usr/sbin/imapd

The above line is commented out; remove the leading # sign. On RedHat 7.0 systems and later with xinetd, instead edit /etc/xinetd.d/imap and change "disable=yes" to "disable=no".

Then restart inetd or xinetd by doing:

 /etc/rc.d/init.d/inetd restart

or

 /etc/rc.d/init.d/xinetd restart

If all else fails, reboot.

You don't actually want to leave the IMAP server enabled for that long. This server runs as root and has had security bugs in the past. For this reason, you shouldn't leave it enabled unless you wish to use it permanently. We will disable this server in step 4.

In order to connect Outlook to this IMAP server, you will need to know the name or IP address of the Linux box.

2.2 Connect your Outlook client to the server

In order to copy over all our email to the server, we need to tell your Outlook client about this new server. Select "Accounts..." from the "Tools" menu, and then "Add" a new account "Mail...". The important items are that the server uses IMAP to download email, that the incoming mail server is the name or IP address of your Linux box from step 1, and the username and password should be your username and password on the Linux box. (As usual, it's a bad idea to use the root account on Linux for this purpose.)

Once you've hit "Finish", set this new account to be the default by highlighting it and clicking on "Set as Default". Outlook should connect to your IMAP server, and the name of your IMAP server should appear at the bottom of your folder list. Click on it; you should see an Inbox folder. (Note that if /var/mail/yourusername doesn't exist on your Linux box, you won't be able to drag-and-drop any messages into your INBOX... and the error message will be confusing. However, that's not what we're going to do.)

2.3 Copy over all your email

At this point you can drag and drop entire folders of email from Outlook onto the IMAP server name. This will copy the email, including all attachments, to the Linux box. Unfortunately it also immediately deletes it from Outlook. In order to copy items without deleting them, right-click on the folder name and select the "Copy" option. For the destination, pick your Linux server at the bottom of the list.

However, life isn't quite that simple. Outlook supports folders containing folders which also contain messages. The Linux IMAP server does not support that; a folder is either a regular file containing messages, or a directory containing subdirectories and files. So if you have folders in Outlook with both messages and subfolders, you can't copy the entire tree over to the Linux IMAP server. Another incompatibility of the Linux IMAP server is that you have to tell it in advance if a new folder will contain subfolders or messages. You do this by appending a slash (/) to the folder name when you create it. This slash will disappear when the folder is created.

So, in order to copy a tree of folders to the Linux IMAP server, first you need to create a replica of the structure of your existing folders on the Linux IMAP server. While you're doing this, note which of the existing folders contain both subfolders and messages. You will need to move these messages elsewhere. Once you have the overall tree created, then you can copy or move groups of folders to the Linux IMAP server.

One final incompatibility to note is that the Linux IMAP server doesn't allow folders with slashes (/) in their name. You'll need to rename such folders before copying or moving them.

On the Linux box, folders appear as files and directories in your home directory. The format of these files is the usual Unix mail format, which most Unix/Linux mail tools either use directly or can convert to/from. Files with attachments will have MIME attachments; there is also one extra message per folder which is a (useless) header.

(One piece of data which doesn't get preserved is the original "From " line, which contains the envelope address of the email. Fortunately you don't actually need that information.)

2.4 Deinstall IMAP from your Linux box

Once you've transferred all of your email, you will want to deinstall the IMAP server from your Linux box, for the security reasons mentioned earlier. This involves the same 2 steps you took to install the server:

  1. Remove the RPMs:
      rpm -e imap
    
  2. Remove the line in /etc/inetd.conf or /etc/xinetd.d/imap
  3. Restart inetd or xinetd, or reboot.

Voila! You have taken another step towards a Microsoft-free lifestyle.


Next Previous Contents