メール読み君 ver.1.2

What is メール読み君?

メーリングリストを生成するプログラムにezmlmというのがあります。メーリングリストのメンバーは入れ替わりがあるのが普通で、新しいメンバーが増えるたびに過去の話題を説明するのが面倒なので、いっそのことログを公開すればいいや、とezmlmのログを表示させるためのプログラムがメール読み君なわけです。ezmlmそのものについては、前野さんのページを参照下さい。

簡単なプログラムだと思ってBASE64も理解せずに作り始めましたが、すぐにコード変換の壁にぶち当たってしまいました。BASE64変換のできるライブラリをいろいろと探し回った結果、mimer.plの存在を見つけることで解決することができました。mimer.plについては生田さんのページを参照ください。

プログラム概要

プログラムはごく簡単ですので、ここではezmlmの生成するログおよび日本語で送受信されるメールの説明をすることにします。

ezmlmのパス構造

デフォルトでのezmlmのログファイルの構成はこのようになっています。ログファイルは00から99の100個が1つの数字ディレクトリに入っています。

folderarchive
 └folder0
  └log00 log01 log02 ... log99
 └folder1
  └log00 log01 log02 ... log99
 └folder3
  └log00 log01 log02 ... log10

perlは文字列と数値の計算を可能にしてくれるので、昇順「"01"+1=2」と降順「"03"-1=2」となりますので、"0/01"++ → "0/02"は容易に計算できます。

注意するのはディレクトリをまたがった部分のみで、"0/99"++ → "1/00"ぐらいです。また、メール読み君では、最終メール番号を求める計算はやっていません。

ezmlmのログ

次に、ログの状態を説明します。Base64で記述されている部分は緑ISO-2022が使われている部分は青で色分けして表示しています。改行コードはLFで、画像[LF]を使って表示しました。

ログの例
生ログ(ISO-2022JPで表示)表示させたいログ(EUC-JPで表示)
Return-Path: tancro@stp-1.com[LF]
Mailing-List: contact tancro-help@stp-1.com; run by ezmlm[LF]
Delivered-To: mailing list tancro@stp-1.com[LF]
Message-Id: <200205011645.AA00343@comp115.stp-1.com>[LF]
From: "tancro" <tancro@stp-1.com>[LF]
Date: Thu, 02 May 2002 01:45:25 +0900[LF]
To: tancro@stp-1.com[LF]
MIME-Version: 1.0[LF]
X-Mailer: AL-Mail32 Version 1.12[LF]
Content-Type: text/plain; charset=iso-2022-jp[LF]
Subject: =?ISO-2022-JP?B?GyRCJWEhPCVrRkkkXzcvGyhC?=[LF]
[LF]
メール読み君[LF]
設置説明用ログ[LF][LF]
--------------[LF]
tancro[LF]
From: "tancro" <tancro@stp-1.com>[LF]
Date: Thu, 02 May 2002 01:45:25 +0900[LF]
Subject: メール読み君[LF]
[LF]
メール読み君[LF]
設置説明用ログ[LF][LF]
--------------[LF]
tancro[LF]

ログには次の大きな特長があり、特に第3項の普遍性を見つけることで本文の抽出を行っています。

  1. 各ヘッダは基本的に1行づつかかれている(2行になるときもあるが無視)
  2. ヘッダの項目名の出現順は不定
  3. ヘッダと本文の間には空白行がある

メール読み君の設置

まず、次のファイルをパソコンにダウンロードして解凍してください。解凍ソフトとしてはLhacaがおすすめです。

  1. readmail.zip

解凍すると次のファイルがでてきますので、readmail.cgiの修正を行ってください。perlの編集ソフトとしてはPerlEditorがおすすめです。

  1. readmail.cgi (ver.1.2)
  2. jcode.pl
  3. mimer.pl (ver.2.02)
  4. index.html ダミーページ

以下は設置例です(カッコ内はsuEXECサーバーでのパーミッションの1例)。

特にセキュリティを重視される場合は、パーミッションだけでなく、BASIC認証などを用いて、メールログおよびメール読み君を第3者から守る手段を講じてください。

folder/
└foldercgi-bin/readmail/  (701)
 └logreadmail.cgi          (701)
  logmimer.pl              (600)
  logjcode.pl              (600)
  logindex.html            (644)
 └folderarchive (700)
  └folder0 (700)
   └log00 log01 log02 ... log99 (600)
  └folder1 (700)
   └log00 log01 log02 ... log99 (600)
  └folder3 (700)
   └log00 log01 log02 ... log10 (600)

readmail.cgiの編集

1行目 #!/usr/local/bin/perl
パスをお使いのサーバーのパスに変更
14行目 readmail.cgi
好きなファイル名に変更
15行目 メール読み君
好きなタイトル名に変更
20行目 archive
上記配置なら変更なし

メール読み君の設置例

サンプル は、00から02の3通を入れてあります。

更新履歴その他

更新履歴

Ver.1.2
2002/5/3 公開版完成
Ver.1.1
2001/1/10 説明文を作成
Ver.1.0
2000/12/10 初期版完成

利用上の注意

readmail.cgiは自由に改造・配布してもらっても結構です。jcode.plやmimer.plについてはそれぞれの使用条件に従ってください。

メール読み君ver.1.2についてのご質問はtancro@stp-1.comにお願いします。

戻る

tipsカウンタ