in reply to msg2mbox converter
#!/usr/bin/perl -w use strict; # MDaemon msg to mailbox mail file converter # Usage: msg2mbox *.msg > mail.mbox die "usage: msg2mbox *.msg > file.mbox\n" unless @ARGV; my @file = @ARGV; FILE: for(@file) { @ARGV = $_; my @line = <>; my ($addr, $date); for(@line) { s/\r//g; if /^Encrypted\s+By\s+MDaemon/) { next FILE; } elsif(/^Return-path:(.*)/) { local $_ = join ' ', split " ", $1; tr/ //d; s/<(.+)>/$1/; $addr = $_; } elsif(/^Date:(.*)/) { local $_ = join ' ', split " ", $1; tr/,//d; # weekday day month year time adj -> weekday month day tim +e year $date = join " ", +(split)[0, 2, 1, 4, 3]; } } $addr ||= "unknown\@uknown.com"; $date ||= "Mon Jan 1 01:00:00 2000"; print "From $adr $dt\n", @line; }
Untested.
You should probably add a Lines: or Content-length: header if neither is present - or just let Mail::Box handle the gory details for you.
Makeshifts last the longest.
|
|---|