Courier IMAP/POP3 ================= *WARNING: Badly done migration will cause your IMAP and/or POP3 clients to re-download all mails. Read page first carefully.* Courier v0.43 and later to Dovecot v1.1+ ---------------------------------------- courier-dovecot-migrate.pl [https://dovecot.org/tools/courier-dovecot-migrate.pl] does a perfect migration from Courier IMAP and POP3, preserving IMAP UIDs and POP3 UIDLs. It reads Courier's 'courierimapuiddb' and 'courierpop3dsizelist' files and produces 'dovecot-uidlist' file from it. Before doing the actual conversion you can run the script and see if it complains about any errors and such, for example: ---%<------------------------------------------------------------------------- # ./courier-dovecot-migrate.pl --to-dovecot --recursive /home Finding maildirs under /home /home/user/Maildir/dovecot-uidlist already exists, not overwritten /home/user/Maildir2: No imap/pop3 uidlist files Total: 69 mailboxes / 6 users 0 errors No actual conversion done, use --convert parameter ---%<------------------------------------------------------------------------- The actual conversion can be done for all users at once by running the script with '--convert --recursive' parameters. Make sure the conversion worked by checking that 'dovecot-uidlist' files were created to all maildirs (including to subfolders). The '--recursive' option goes through only one level down in directory hierarchies. This means that if you have some kind of a directory hashing scheme (or even domain/username/), it won't convert all of the files. You can also convert each user as they log in for the first time, using with a script something like: ---%<------------------------------------------------------------------------- #!/bin/sh # WARNING: Be sure to use mail_drop_priv_before_exec=yes, # otherwise the files are created as root! courier-dovecot-migrate.pl --quiet --to-dovecot --convert Maildir # This is for imap, create a similar script for pop3 too exec /usr/local/libexec/dovecot/imap ---%<------------------------------------------------------------------------- FIXME: The script should rename also folder names that aren't valid mUTF-7. Dovecot can't otherwise access such folders. Dovecot configuration --------------------- Courier by default uses "INBOX." as the IMAP namespace for private mailboxes. If you want a transparent migration, you'll need to configure Dovecot to use a namespace with "INBOX." prefix as well. ---%<------------------------------------------------------------------------- mail_location = maildir:~/Maildir namespace { prefix = INBOX. separator = . inbox = yes } ---%<------------------------------------------------------------------------- See also [Namespaces.txt]. Manual conversion ----------------- * Courier's 'courierimapsubscribed' file is compatible with Dovecot's 'subscriptions' file, but you need to remove the "INBOX." prefixes from the mailboxes./This is true even if you set namespace prefix to "INBOX." as described above./ * Courier's 'courierimapuiddb' file is compatible with Dovecot's 'dovecot-uidlist' file, just rename it. * Courier's message flags are compatible with Dovecot (as they are specified by the Maildir specification) * Courier's message keywords implementation isn't Dovecot compatible. There doesn't exist a simple way to convert the keywords manually. (This file was created from the wiki on 2019-06-19 12:42)