MHonArc + Namazu (3) – msgconvert.pl

前回、msgconvert.pl というツールをインストールした。
これでコマンドプロンプトを起動して、msgconvert と打てばツールが利用できる。

使い方は特に問題ないが、マルチバイト環境だと処理できないものがあったりクセがあるものの、基本的には
msgconvert YourMessage.msg
とすると、YourMessage.msg.mime
というファイルができて、この mime 形式になったものは MHonArc で HTML 変換できるフォーマットになっている。

やりたいことは、
1. 「件名.msg」というファイル名で Outlook からメールをエクスポート
2. msgconvert.pl で .mime 形式にする
ただし、このとき、マルチバイトのファイル名の扱いがうまくできない点と .msg という拡張子で引数を渡す必要があるためあらかじめ以下2点を実施しておく。

  • 0.msg のような連番ファイルにリネームしておく
  • msgconvertによる処理が完了すると 0.msg.mime のように .mime サフィックスが付与されるのでこれを取り除く

3. mhonarc に処理を行わせる

D:\MHONARC_IMPORT>perl -e “while() { rename($_;$i++.msg }”
D:\MHONARC_IMPORT>perl -e “while() { rename($_,$i++); }”
D:\MHONARC_IMPORT>mhonarc . -outdir \\10.1.1.50\e-mail\ -add

#!c:\strawberry\perl\bin\perl -w
use strict;

my $MHONARC_IMPORT_DIR = 'D:\MHONARC_IMPORT';
my $MHONARC_EXPORT_DIR = q{\\\\10.1.1.50\\e-mail\\};

# .msg を取得

opendir ( MHONARC_IMPORT_DIR, $MHONARC_IMPORT_DIR ) or die "opendir $MHONARC_IMPORT_DIR failed: $!";

my @msgs =
map { $_->[0] }
sort { $a->[1] $b->[1] }
map { [ $_, -M "$MHONARC_IMPORT_DIR/$_" ] }
grep ( /^[^.]/, readdir MHONARC_IMPORT_DIR );
close MHONARC_IMPORT_DIR;

for ( my $i=0; $imy ($ss, $mm, $hh, $DD, $MM, $YY, $wday, $yday, $isdst) = localtime( ( stat qq|$MHONARC_IMPORT_DIR/$msgs[$i]| )[9] );
$YY += 1900;
$MM ++;
# print $msgs[$i]."\n";
rename $msgs[$i], "$i.msg";
system ('msgconvert', "$MHONARC_IMPORT_DIR\\$i.msg");
# system ('msgconvert', "$MHONARC_IMPORT_DIR\\$i.msg") == 0 or die "sytem msgconvert $MHONARC_IMPORT_DIR\\$i failed: $?";
rename "$i.msg.mime", $i;
}

#system ('mhonarc', "$MHONARC_IMPORT_DIR".' -outdir '."$MHONARC_EXPORT_DIR".' -add') == 0 or die "Failed to process : $?";

__END__
スポンサーリンク

シェアする

フォローする

スポンサーリンク