in reply to Resend Email from Mbox format
I did something like this a little over a year ago with Net::SMTP doing the deliveries. If I were writing this today, it would probably be a bit different, but here's what I had back then:
# $from is to be the envelope sender # $msg is the full text of the message, headers and all # (everything after the initial 'From ' line in the mbox sub attempt_delivery { my ( $from, $msg ) = @_; my $smtp; my $success; my $sleepy = 1; while ( ! ( $smtp = Net::SMTP->new('smtp.example.com') ) ) { print "Sleeping $sleepy...\n"; sleep( $sleepy ); $sleepy *= 2; $sleepy = 60 if ( $sleepy > 60 ); } if ( ! $smtp->mail( $from ) ) { $smtp->quit(); return 0; } # in my script, $to is a global variable if ( ! $smtp->to( $to ) ) { $smtp->quit(); return 0; } if ( ! $smtp->data() ) { $smtp->quit(); return 0; } if ( ! $smtp->datasend( $msg ) ) { $smtp->quit(); return 0; } if ( ! $smtp->dataend() ) { $smtp->quit(); return 0; } if ( ! $smtp->quit() ) { return 0; } return 1; }
I was parsing through my mbox files by hand, mostly because they were mangled in various unseemly ways. If yours are pristine, you'll probably want to check out Email::Folder::Mbox or Mail::Mbox::MessageParser or something. CPAN has many candidates.
|
|---|