Ben Lutgens wrote:
>
> Hey all, I am converting from sendmail / cyrus to qmail / courier.
> I have some imap-only users who would like to keep thier mail in tact as is.
> Problem is cyrus keeps things in an odd format. I need to find a utility to
> convert from cyrus style mailboxes to mbox or Maildir format to make the
> transition to the new mail server.
>
> The mbox to Maildir conversion is easy, a util comes with qmail to do just
> that (I really really like qmail, Dan Bernstein is my hero) so if I could get
> the cyrus boxes into mbox, I'd be golden.
>
> Any pointers would be greatly appreciated. As I have searched every search
> engine I know of and turned up nothing. The documentation for cyrus sucks, and
> there is no mentiion anywhere of converting from those oddball mailboxes to
> anything else.
>
try this perl script (it's ugly q&d). The only messages it failed on
for me was spam that deliberately left out the From: line. It prints
it's output to standard out and is non-destructive to original messages.
I ran it like this
perl from.pl /usr/local/cyrus/spool/user/paul/[0-9]*. > test.mbox
( I need to teach my spell checker about perl )
Eric
--- cut ---
#!/usr/local/bin/perl
foreach $file (@ARGV) {
open (TMP, $file) or do {
print STDERR "Couldn't open $file : $!\n";
next;
};
undef $who;
undef @body;
undef @header;
while (<TMP>) {
push @header, $_;
chomp;
if (/^From: /) { # what we want
if (m/From:\s+(?:.*?)<(.*)>(?:.*)$/) {
$who = $1;
} else { # wasn't angled so hope for the best
s/^From:\s+(.*?)(?:[()\s]+.*)$/$1/;
print STDERR "From [$_]\n";
$who = $_;
$who =~ tr/\"//d; # remove quotes
}
}
last if ($_ eq "\n"); # this could burn you if blank line isn't
newline
last if ($_ eq "\r\n");
}
@body = <TMP>;
close TMP;
if ((!defined($who) || ($who eq ""))) {
print STDERR "Not able to determine who it's from (skipping
$file)\n";
} else {
$time = localtime();
print "From $who $time\n";
print @header;
print "\n";
print @body;
print "\n";
}
}
--- end cut ---
> TIA
> --
> Ben Lutgens cell: 612.670.4789 http://www.sistina.com/
> Sistina Software Inc. work: 612.379.3951
> Code Monkey Support (A.K.A. System Administrator)
>
> ------------------------------------------------------------------------
> Part 1.2Type: application/pgp-signature