古いメールを取り出したかったので、Perl のモジュールでとりだしてみました。
Mail::Transport::Dbx - Parse Outlook Express mailboxes
を使いました。
使い方は簡単で、以下のようなスクリプトを作っておいて、perl test.pl *.dbx | less とかやれば、そのまま見れます。
#!/usr/bin/perl
# test.pl
# use lib qw(blib/lib blib/arch);
use Mail::Transport::Dbx;
use strict;
foreach my $f (@ARGV) {
my $dbx = eval {
Mail::Transport::Dbx->new("$f")
};
die $@ if $@;
for my $msg ($dbx->emails) {
print $msg->as_string . "\n";
}
}
maildrop とかにローカル配送させたい場合は、
#!/usr/bin/perl
# test-local-deliv.pl
# use lib qw(blib/lib blib/arch);
use Mail::Transport::Dbx;
use strict;
foreach my $f (@ARGV) {
my $dbx = eval {
Mail::Transport::Dbx->new("$f")
};
die $@ if $@;
for my $msg ($dbx->emails) {
open(F, "| maildrop");
print F $msg->as_string . "\n";
close(F);
}
}
とかやるといいかと思います。(こっちは試してません)

Leave a comment