CYRUS2COURIER ============= cyrus2courier is a nice tool to convert a single mailbox from Cyrus-Imap into the Maildir++ format used by the Courier-Imap and Dovecot IMAP servers. FEATURES ======== * migrates the whole directory structure of a mailbox * migrates all mailfiles with proper CR/LF-fixing * retains all mailflags like "seen", "replied", "deleted" ... * generates "mailfolder"-files within the subdirectories * generates "courierpop3dsizelist" files * optionally migrates quota and folder-subscription information * optionally outputs dovecot-compatible format * supports cyrus 2.0 db-style seen files REQUIREMENTS ============ * a working getopt/getopt_long implementation (GNU getopt, OpenBSD getopt) * a C-compiler (gcc recommended) BUILDING ======== just type "make" in the root directory of the unpacked distribution. KNOWN ISSUES ============ * only mail-size quotas are migrated; mail-count quotas are ignored * c2c can only convert flatlist seen files, but you can convert your skiplist/db3-style seen files with cvt_cyrusdb /path/to/your.seen skiplist /path/to/a/your_flat.seen flat (many thanks to Adam for the hint!) USAGE ===== Usage: cyrus2courier [options] cyrusdir courierdir mailbox -V, --Version .............. print version information -v, --verbose .............. be verbose / repeat to increase verbosity -q, --quota-dir= ...... cyrus quota-files directory -s, --subscribe-dir= .. cyrus subscribe-files directory -e, --seen-dir= ....... cyrus seen-files directory -x, --hashed=[s][q][e]...... cyrus hashed (s)ubscribe/(q)uota/s(e)en dirs -d, --dovecot .............. write Dovecot-compatible files Note: all directories have to be specified with absolute pathnames Example: cyrus2courier --quota-dir=/mail/conf/quota --subscribe-dir=/var/conf/user \ /var/spool/cymail /var/spool/couriermail mad For mass-conversion, try something like ... for mailbox in `ls /var/spool/cymail/`; do echo $mailbox cyrus2courier --quota-dir=/mail/conf/quota --subscribe-dir=/var/conf/user \ /var/spool/cymail /var/spool/couriermail $mailbox done or have a look at the shell-scripts from the scripts subdirectory. TESTED W/ ========= * with Cyrus-Imap 1.5.x/1.6.x/2.0/2.1.x * Courier-Imap 1.7.x/2.0 * Dovecot 0.99.10 * HPUX 11.22/ia64 * AIX 5.1 * Compaq Tru64 V5.1B * FreeBSD 4.8/5.1 * OpenBSD 3.3/i386 * Debian Linux 3.0 * Solaris 9/x86 * Windows XP/Cygwin 1.3.22 * gcc 2.95.4, 3.2.3, 3.3, 3.4-dev * tcc 0.9.19 (Linux) * Compaq C V6.5-207 * IBM C for AIX 6 AUTHOR ====== * Alexander Marx CREDITS ======= * Timo Sirainen Dovecot support, initial Cyrus-Imap 2.0 and 2.1 support; 64Bit support and fixes to preserve UIDs * Stefan Kaltenbrunner lots of suggestions; some cyrus-imap db-file reverse engineering; getopt-style commandline argument handling; lot's of cvs-breakage; code to generate courierpop3dsizelist files * Adam Shand some help with debugging earlier c2c versions; some tips on converting newer cyrus mailspools and an example script for cyrus2dovecot mass-migration (see scripts/convert2dovecot.sh) also many thanks to all the people who mailed and/or provided feedback. -- $Id: README,v 1.31 2006/02/26 14:39:15 mad Exp $