メーリングリストを生成するプログラムにezmlmというのがあります。メーリングリストのメンバーは入れ替わりがあるのが普通で、新しいメンバーが増えるたびに過去の話題を説明するのが面倒なので、いっそのことログを公開すればいいや、とezmlmのログを表示させるためのプログラムがメール読み君なわけです。ezmlmそのものについては、前野さんのページを参照下さい。
簡単なプログラムだと思ってBASE64も理解せずに作り始めましたが、すぐにコード変換の壁にぶち当たってしまいました。BASE64変換のできるライブラリをいろいろと探し回った結果、mimer.plの存在を見つけることで解決することができました。mimer.plについては生田さんのページを参照ください。
プログラムはごく簡単ですので、ここではezmlmの生成するログおよび日本語で送受信されるメールの説明をすることにします。
デフォルトでのezmlmのログファイルの構成はこのようになっています。ログファイルは00から99の100個が1つの数字ディレクトリに入っています。
archive └
0 └
00
01
02 ...
99 └
1 └
00
01
02 ...
99 └
3 └
00
01
02 ...
10
perlは文字列と数値の計算を可能にしてくれるので、昇順「"01"+1=2」と降順「"03"-1=2」となりますので、"0/01"++ → "0/02"は容易に計算できます。。
注意するのはディレクトリをまたがった部分のみで、"0/99"++ → "1/00"ぐらいです。また、メール読み君では、最終メール番号を求める計算はやっていません。
次に、ログの状態を説明します。Base64で記述されている部分は緑、ISO-2022が使われている部分は青で色分けして表示しています。改行コードはLFで、画像
を使って表示しました。
| 生ログ(ISO-2022JPで表示) | 表示させたいログ(EUC-JPで表示) |
|---|---|
Return-Path: tancro@stp-1.com |
From: "tancro" <tancro@stp-1.com> |
ログには次の大きな特長があり、特に第3項の普遍性を見つけることで本文の抽出を行っています。
まず、次のファイルをパソコンにダウンロードして解凍してください。解凍ソフトとしてはLhacaがおすすめです。
解凍すると次のファイルがでてきますので、readmail.cgiの修正を行ってください。perlの編集ソフトとしてはPerlEditorがおすすめです。
以下は設置例です(カッコ内はsuEXECサーバーでのパーミッションの1例)。
特にセキュリティを重視される場合は、パーミッションだけでなく、BASIC認証などを用いて、メールログおよびメール読み君を第3者から守る手段を講じてください。
/ └
cgi-bin/readmail/ (701) └
readmail.cgi (701)
mimer.pl (600)
jcode.pl (600)
index.html (644) └
archive (700) └
0 (700) └
00
01
02 ...
99 (600) └
1 (700) └
00
01
02 ...
99 (600) └
3 (700) └
00
01
02 ...
10 (600)
サンプル は、00から02の3通を入れてあります。
readmail.cgiは自由に改造・配布してもらっても結構です。jcode.plやmimer.plについてはそれぞれの使用条件に従ってください。
メール読み君ver.1.2についてのご質問はtancro@stp-1.comにお願いします。