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

Reply via email to