====== Mirgrating courier ========
migrating whole Courier soulutions means basicly migrating only imap and maildrop deliverer. The rest pop3 and auth daemon are trivial.
===== Case Study =====
Original virtual maildir structure ''/var/mail/virtual/example.com/name.surname/Maildir'' has additional special path ''/Maildir'' at the end. New should map to ''/srv/mail/virtual/example.com/name.surname/Maildir''
**First Solution** for simple cases is simple. In simple case all your e-mails user@domain match the structure above (''/path/domain/user'') and ''maildir'' column in your database is funny overhead. Add to your ''dovecot.conf''
auth default {
...
userdb static {
args = uid=1001 gid=1001 home=/srv/mail/virtual/%d/%n allow_all_users=yes
}
...
}
mail_location = maildir:~/Maildir
**Second Solution** is to change the sql query int dovecot-sql.conf
user_query = SELECT maildir as home, uid, gid, concat('maildir:', maildir, '/Maildir') as mail FROM mailbox WHERE username = '%u'
and set up different userdb source in dovecot.conf
auth default {
...
userdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
...
}
forget the mail_location.
===== Theory Behind =====
Is that realy a theory? It is the code behind. Final deliverer LDA is ''deliver''. It is given one parameter ''-d {recipient'' which is ''-d name.username@example.com''. First it asks dovecot auth socket for additional data like uid, gid, maildir path.
===== Syncing Dirs =====
at source host:
for i in /var/mail/virtual/*/; do echo $i; rsync -a --rsh='ssh -c blowfish' $i wd@81.0.212.153:$i; done
at new host:
./courier2dovecot.pl --to-dovecot --convert --recursive /var/mail/virtual/*