Migrating old messages
MK <mk <at> cognitivedissonance.ca>
2016-05-11 10:46:51 GMT
I've been using courier for 2.5 years on a personal server where I have a few accounts that amount to about
20-30 emails a day. Up until now, I've been accessing them via POP but have copies of everything all the way
back on the server in courier's ARCHIVEDIR.
The POP clients delete stuff from the individual account Maildir's after a short period, but a couple of the
machines use the same client software and keep a syncronized archive of their own. The others, e.g. my
phone, just retain messages for a short duration.
I just physically migrated the server, and upgraded courier from 0.66.1 to 0.76.1 on the new machine.
Everything seems to be working fine. However, rather than continuing with the old methodology just
described, I decided to switch to IMAP for everything. I started with fresh, empty, new accounts on the new
server, with addresses corresponding to the old ones, and there are no problems with delivery or access.
But I would like to integrate a backlog of the old messages, for which I have the two sources just mentioned:
- A "local" archive from the synchronized POP clients; this has nothing to do with courier, although the
messages are in separate files and are identical to what would be found in the server side Maildirs.
- A "remote" archive in ARCHIVEDIR.
I notice there's a subtle difference between the latter and what ends up in the Maildir; the Maildir
messages have a "Delivered-To:" and "Return-Path:" header added. In the ARCHIVEDIR, this information
seems to be kept in a separate file with a 1-1 correspondence to the messages using a format I assume is
courier's but would be easy to parse if need be.
The issue with simply trying to insert stuff into the Maildir's on the new machine is sort of two-fold.
First, they obviously have a name created by courier -- I don't know if this is according to a Maildir
standard or not, but they are different from either the names given to the files by the client software in
the "local" archive, and the names given to them by courier in the ARCHIVEDIR. If it is according to a
documented standard, it would not be hard for me to create them from what I have and insert them except for
the second fold of the problem: courier also tracks them in a separate, per user account file.
For the old POP accounts this is a fairly straightforward looking list. For the new ones, this is a binary
database of some sort ('courierimapuiddb').
What are my options here? I believe the message files in ARCHIVEDIR are the messages as recieved by courier
*almost* unadulterated; there is a "Recieved:" header added. I could strip those off and ask
about/figure out a way to feed them to courier on the new machine *but* that "Recieved:" header includes a
date which I'm guessing is the definitive one.
I'm continuing to keep an ARCHIVEDIR on the new machine and it might be handy to do something along similar
lines later, so I'd prefer to work with that stuff than what's in the "local" archive (since I won't be doing
that in the future).
Sincerely -- MK
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
courier-users mailing list
courier-users <at> lists.sourceforge.net