This documentation is for Dovecot v1.x, see wiki2 for v2.x documentation.
Differences between revisions 12 and 13
Revision 12 as of 2004-10-14 21:22:50
Size: 4571
Editor: ip213-185-36-189
Comment:
Revision 13 as of 2004-10-30 03:04:48
Size: 4750
Editor: grice
Comment:
Deletions are marked like this. Additions are marked like this.
Line 37: Line 37:
 * You can either rename your ".mailboxlist" file to ".subscriptions" for all you users, or change the definition of SUBSCRIPTION_FILE_NAME in ''src/lib-storage/subscription-file/subscription-file.c''.  * You can either rename your ".mailboxlist" file to ".subscriptions" for all you users, or change the definition of SUBSCRIPTION_FILE_NAME in ''src/lib-storage/subscription-file/subscription-file.c''.  In 1.0-test, this value is defined in ''src/lib-storage/subscription-fileindex/maildir/maildir-storage.h'' and ''src/lib-storage/subscription-fileindex/mbox/maildir-storage.h''.

TableOfContents

Migration to Dovecot

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

  • Mailbox subscription list
    • User would be able to manually subscribe them again if you don't want to mess with it.
  • Message UIDs
    • If UIDs are lost, at the minimum clients' message cache gets cleaned
    • Some IMAP clients store metadata by assigning it to specific UID, if UIDs are changed these will be lost.
  • Message flags
    • Lost flags can be really annoying, you most likely want to avoid it.

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.

  • If your clients have the server prefix set to something like "~/mail", this will not work unless you enable mail_full_filesystem_access in your Dovecot configuration. Dovecot will otherwise reject mailbox names or prefixes that start with "~". Alternative to this with 1.0-tests is to [wiki:Namespaces set up multiple hidden namespaces].
  • You can either rename your ".mailboxlist" file to ".subscriptions" for all you users, or change the definition of SUBSCRIPTION_FILE_NAME in src/lib-storage/subscription-file/subscription-file.c. In 1.0-test, this value is defined in src/lib-storage/subscription-fileindex/maildir/maildir-storage.h and src/lib-storage/subscription-fileindex/mbox/maildir-storage.h.

  • If ~/mbox file exists, UW-IMAP moves mails from /var/mail/user there. Currently Dovecot doesn't support this feature, so you'll have to either move everyone's mails to ~/mbox and reconfigure MTA/LDA to store mails there, or alternatively get the ~/mbox users to move their mails back to /var/mail/user. This feature may be implemented later, but it's not planned in near future.

UW-POP3

Dovecot generates POP3 UIDs differently than UW-IMAP. You most likely want to preserve them, so currently you'll have to [http://dovecot.org/patches/pop3-uidl-uwimap.patch patch Dovecot].

Courier

Courier by default uses "INBOX." as private IMAP namespace, so it has exactly the same problems as described with UW-IMAP above.

  • Courier's courierimapsubscribed is compatible with Dovecot's .subscriptions file, just rename it and remove the "INBOX." prefixes.

  • Courier's courierimapuiddb is compatible with Dovecot's dovecot-uidlist file, just rename it.

  • Courier's message flags are compatible with Dovecot (as it's specified by Maildir specification)
  • Courier's message keywords implementation isn't Dovecot compatible and there's currently no easy way to migrate them.

Settings:

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

Cyrus

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

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:

None: Migration (last edited 2010-11-02 22:24:58 by TimoSirainen)