アーカイブサービスのないメーリングリストのアーカイブを作成するため、手持ちのメーラからMBox形式でデータを吐き出し、それをどうにか加工してWeb公開するための手順を検討しています。
世の中的には、PerlスクリプトのMHonArcを使うのが主流(というかこれしかない?)のようですが、今回はJavaでチャレンジしてみようと思っております。
メールの書式って
いきなりひっかかるのが、メールの書式です。プログラムで処理するためには書式に関して厳格なルールが必要になります。でもってやり取りしているメールを眺めてみると、、、
From:の内容って千差万別ですね。しかも複数行に渡っているものもあるし、=?ISO-2022-JP?B? で始まるエンコードされたものもあるし、、、
Subjectは大抵エンコードされていますね。
ヘッダーと本文の境界ってルールがあるのかな。空行があると境界?
References:に複数の参照が書かれている場合って?
エンコードについては@ITのサイトに解説がありました。
MIME(Multipurpose Internet Mail Extensions)〜前編:インターネット・プロトコル詳説(3) - @IT
MIME(Multipurpose Internet Mail Extensions)〜後編:インターネット・プロトコル詳説(4) - @IT
MHonArcだったら
MHonArcお試しメモ
MHonArc入手先は、MHonArc Home Pageです。本日現在、MHonArc-2.6.10が入手できます。
アーカイブ(tar.gz/tar.bz2/zip)を展開後、perlでinstall.meスクリプトを実行すると必要なファイルが必要なディレクトリにコピーされます。install.meを実行するといくつか質問されます。デフォルトでよさそうです。
とりあえず、安直にHTMLに変換するには、
$ mhonarc foobar-ml.mbx This is MHonArc v2.6.10, Perl 5.008002 cygwin Converting messages to . Reading foobar-ml.mbx .......................................
となります。
こまかな設定は、リソースファイルを作成してそこに記述し、起動時にオプションでリソースファイルを指定します。
$ mhonarc -outdir ./foobar -rcfile foobar.rc foobar-ml.mbx