This documentation is for Dovecot v1.x, see wiki2 for v2.x documentation.

TableOfContents

Migration to Dovecot

When migrating from one IMAP server to another, you should make sure that these are preserved:

Here's the more server-specific instructions:

UW-IMAP

By default UW-IMAP allows access to whole home directory, and many people have chosen to store their mails in mail/ directory. This usually means that IMAP clients have set "IMAP namespace" to "mail/", which doesn't work well with Dovecot, as Dovecot by default uses mail/ directory directly. So if IMAP namespace is kept as "mail/", Dovecot would try to access "~/mail/mail/" directory.

So, removing the prefix from IMAP clients would be the first step. Next problem is that subscribed mailboxes are listed as "mail/box" or "~/mail/box" or "~user/mail/box" in subscriptions file. You'd have to remove the mail/ directory part from all of these. The subscriptions file name is also different, UW-IMAP uses .mailboxlist while Dovecot uses .subscriptions.

Dovecot uses UW-IMAP compatible UID and message flag headers in mboxes, so that's not a problem.

Settings:

default_mail_env = mbox:~/mail:INBOX=/var/mail/%u
# make sure mbox_locks are the same with all software that accesses your mboxes
mbox_locks = dotlock fcntl

If you want to make a transparent migration to Dovecot without having to change the configuration on hundreds of client systems, you will need a slightly different configuration.

DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA

Every folder on a system using UW-IMAP has a system message in the top with the subject "DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA". This system message has information about the folder and its state. dovecot does not use these system messages to anything so you can delete them without any problems - unless you have users using Pine together with an IMAP or POP3 mailclient.

UW-POP3

By default Dovecot generates POP3 UIDs differently than UW-IMAP. If you want to preserve them, with 0.99.x you'll have to [http://dovecot.org/patches/pop3-uidl-uwimap.patch patch Dovecot]. With 1.0-tests you can use:

pop3_uidl_format = %08Xv%08Xu

Courier

Courier by default uses "INBOX." as private IMAP namespace, so it has exactly the same problems as described with UW-IMAP above. Again, if you want the migration to be transparent for IMAP clients see [wiki:Namespaces Namespaces] how to get namespaces to be Courier-compatible.

Settings:

# normal home directories
default_mail_env = maildir:~/Maildir
# for virtual users
default_mail_env = maildir:~/

For POP3 UIDL compatibility, use one of:

# Courier version 0 (using maildir filenames)
pop3_uidl_format = %f
# Courier version 1 (UID)
pop3_uidl_format = %u
# Courier version 2  (UIDVALIDITY and UID)
pop3_uidl_format = %v-%u

Cyrus

See [http://madness.at/projects/ cyrus2courier], it's Dovecot-compatible. Also mirrored at [http://dovecot.org/tools/ dovecot.org].

For POP3 UIDL compatibility, use one of:

#  Cyrus (old format - up to v2.1.3)
pop3_uidl_format = %u
#  Cyrus (new format - v2.1.4 and above)
pop3_uidl_format = %v.%u

Other POP3 servers

Different POP3 servers generate UIDs differently. If you want to preserve them to avoid users downloading their mails twice, you'll need to figure out how the server generates the UID and patch Dovecot accordingly to do the same.

In future Dovecot will support reading the UID from X-UIDL header, and if it doesn't exist it will use it's own method. This feature is almost there, but not quite yet.

Here is a list of POP3 servers and how they generate their UIDs. Please update if you know more: