Converting from mbox to maildir

From Edgar BV Wiki
Revision as of 10:48, 12 February 2013 by Red (talk | contribs)
Jump to navigation Jump to search

converting from mbox to maildir for imap

problem: mbox format doesn't allow subfolders in imap.

mbox is a mailfile in /var/mail/ and maildir is 1 file per email in the users homedir/Maildir


Steps:

  • replace popa3d with dovecot-pop3d

change protocols in dovecot

http://www.debiantutorials.com/installing-dovecot-imap-and-pop-daemon-with-mysql-backend/

  • Get postfix to deliver in maildir format

postconf -e "home_mailbox = Maildir/"

postconf -e "mailbox_command ="

http://wiki.debian.org/Postfix#Maildir

  • change the way procmail delivers mail

DEFAULT="$HOME/Maildir/"

MAILDIR="$HOME/Maildir/"

http://wiki.dovecot.org/procmail (with more options for faster delivery)

  • change the way dovecot-pop3d picks up mail
  • Migration!

First, create a master user on the server you're going to migrate from:

/etc/dovecot.conf

auth_master_user_separator=*auth default {  passdb passwd-file {    args = /etc/dovecot/passwd.masterusers    master = yes    pass = yes  }  passdb shadow {  }  userdb passwd {  }}

Create the master user in the new file:

htpasswd -b -c -s passwd.masterusers user password

Test it (NB mind the '1' you do have to type this in!):

# telnet localhost 143* OK Dovecot ready.1 login loginuser*masteruser masterpass1 OK Logged in.

Also see: http://wiki1.dovecot.org/Authentication/MasterUsers

http://wiki2.dovecot.org/Migration/Dsync

  • convert the mbox mailboxes to maildir format:

This converts mboxes to maildirs per user

http://wiki.dovecot.org/Migration/MailFormat

dsync -u red mirror mbox:~/mail:INBOX=/var/mail/red

If you get dotlock time errors, make sure all the machines are running ntp.

It could be that the existing user allready has folders in their setup because they've been using squirrelmail or imap or sometihng. This will give errors during the conversion of the type:

dsync(razor): Error: Can't rename mailbox INBOX to INBOX_13cabe1b5cfff750fa080000ba1da2b1: Renaming INBOX isn't supported.
dsync(razor): Error: Can't rename mailbox INBOX_e72e0e3ad3f4ff5019600000ba1da2b1 to INBOX: Target mailbox already exists

http://batleth.sapienti-sat.org/projects/mb2md/

But Dovecot1 has its' own system, which Dovecot2 doesn't:

http://wiki.dovecot.org/Plugins/Convert <- NB also see alternative formats underneath page