convert from maildir to Cyrus DB

Ken Murchison ken at oceana.com
Fri Feb 13 13:19:25 EST 2004


Craig Ringer wrote:

> On Fri, 2004-02-13 at 21:59, Andrew J Caird wrote:
> 
> 
>>  One keyword that should find at least one message in the thread to get
>>you started is "mailutil".
> 
> 
> While I agree with the above suggestion (read the archives, consider
> using mailutil), I thought it'd be interesting to see if direct import
> was possible. Cyrus uses a custom mailbox format (one file per message
> like maildir, but otherwise unrelated to anything else AFAIK), so you
> can't just copy over mailboxes directly. I thought I'd see how hard it
> was to do so, though I question the utility and sensibility of doing so
> for anything but testing.
> 
> It appears to be possible to import maildirs by renaming all messages to
> the cyrus-style 'n.' format, moving the directory into the desired
> location and fixing it's permissions. `reconstruct -r -f` didn't seem to
> want to find the mailbox, but using cyradm to 'cm' the path then
> reconstructing the mailbox seemed to work.
> 
> To do the renaming, this works:
> 
> #!/usr/bin/env python                                                   
> import os,sys
> msglist = os.listdir(sys.argv[1])
> for (mdid, uid) in map( lambda x,y:(x,y), msglist, range(1,
> len(msglist)+1 )):
>         print "%s -> %s." % (mdid, uid)
>         os.rename( mdid, "%s." % uid )
> 
> then just:
> root#  mv $maildir $cyrus_partition/$target_mailbox
> root#  chown -R cyrus.mail $cyrus_partition/$target_mailbox
> cyrus$ [ using cyradm, 'add' the mailbox ]
> cyrus$ reconstruct -r -f $parent_of_target_mailbox
> 
> I don't know if it's correct, it's definitely ugly, and it's probably a
> really bad idea to do. It did, however, appear to work. 
> 
> So - a question to those who know about the innards of the Cyrus mailbox
> handling: is it reasonable to import maildirs directly as a migration
> option?

Its probably reasonable, but you have to make sure that no messages are 
delivered to this new mailbox before you're done reconstructing.

 > Can significant problems be expected? Is it likely to be much
> faster to copy directly rather than use IMAP?

If the messages are already on the server then its probably faster to 
just rename them.

> What about read status
> (the ,2BLAH suffix in maildir)?

Can't help you there.  If you want flags preserved, then use IMAP.

> Oh, and allow me to repeat: if you use the method I've described above,
> without confirmation that it's safe, you're insane.
> 
> Of course, if you can import maildir you can import mbox pretty easily,
> too.

How so?  You have to split mbox the file into individual messages.

-- 
Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp
---
Home Page: http://asg.web.cmu.edu/cyrus
Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list