Courier IMAP/POP3
=================
*WARNING: Badly done migration will cause your IMAP and/or POP3 clients to
re-download all mails. Read <Migration.txt> 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
<PostLoginScripting.txt> 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#Backwards Compatibility: Courier IMAP> [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)
Copyright 2K16 - 2K18 Indonesian Hacker Rulez