#!/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.
In reply to Re: msg2mbox converter
by Aristotle
in thread msg2mbox converter
by ArtemZ1
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |