Preserving seen state when converting from mbox

Etienne Goyer etienne.goyer at linuxquebec.com
Thu Sep 25 11:13:34 EDT 2003


Hi list,

I am currently migrating a mail server running qpopper to Cyrus imapd.
Part of the job involve migrating the user mailbox in mbox format to
Cyrus.  A lot of these users use pine and other POP client that set
X-UIDL or Status header to set a kind of "seen" flag.  Since the
migration have to be transparent, it is required to preserve that flag.

The user base will continue to use POP for a while with their current
client (eventually migrating to IMAP).  I make the assumption that
setting the Seen flag on the revelant messages will make the Cyrus pop3d
behave the same as qpopper wrt to these messages.  Is this correct ?

For the moment, I thought of three way I could migrate the mailboxes.

My first plan was to use a script I dug from this mailing list called
mboxtocyrus.  It split the mbox file in messages with formail and inject
them with deliver.  However, the "seen" state is not preserved.  Reading
the deliver man page, I can't find a way to have it set the Seen flag.
I wish I could have used that option since I feel it would have been the
simplest and fastest (I have about 20 GB of mbox to migrate) way to do
my migration.  Is there a way I could preserve the Seen state with
deliver ?

My second plan is to follow the first one and work around the problem by 
writing a Sieve script that will look for the X-UIDL or Status header 
and set the Seen flag accordingly at delivery.  If somebody already have 
such a Sieve script, I would be grateful if you could share it.  I am a
beginner with Sieve and not sure where to start.  Also, pointer toward
information about the X-UIDL and Status header will be welcome as I need
to understand what these mean and their implication.

Third and last resort plan is to run both Cyrus imapd and an imap daemon
that read mbox file (most likely UW-imapd) and programatically copy the
messages from the old mailstore to Cyrus.  I wish to avoid that path as
it is the one that require the most work from my part and I feel will
probably be quite slow due to protocol overhead and so on.

Any comments ?  I know mbox to Cyrus migration is a FAQ on the list, but
I never paid attention to these discussion and searching the archive
prove quite tedious and donèt yeld clear answer so far.

Thanks for your insight.

-- 
Etienne Goyer                    Linux Québec Technologies Inc.
http://www.LinuxQuebec.com       etienne.goyer at linuxquebec.com




More information about the Info-cyrus mailing list