Mio's aml : AWK で書かれた簡易 ML フィルタ

0.概要

aml.awk は、GNU AWK で書かれた非常に小さいメーリングリスト用フィルタです。 このスクリプトは以下の機能しかもっていません。

何らかの事情で ML サーバで perl が使用できない、 低機能でいいからできるだけシンプルな ML ソフトが欲しい、 自由に改変できる ML フィルタの雛型が必要、 というような方にお奨めします。

自動アーカイブ、メンバーの自動登録、非常に多数のメンバーへの配送等 の必要が有る場合は、より高機能な他の ML ソフトウェアをお使い下さい。

Mio's aml の最新版は http://miolab.org/mio/junk/aml/aml.tar.gz から入手できます。

 

1.動作条件

(j)gawk,sendmail が正常に動作している UNIX OS マシン。 /etc/aliases ファイルを編集できること。

 

2.インストール

"TEST-ML@foo.bar" というアドレスの ML を作成する場合について説明しますので、 必要に応じて読み替えてください。

ここでは ML 関係のファイルを全て /usr/lib/mail-list に置く場合について 説明しますが、各ユーザのホームディレクトリに置くこともできます。

 

0) まず aml.awk をインストールします。


 # mkdir /usr/lib/mail-list
 # cp aml.awk /usr/lib/mail-list/
aml.awk 自体は複数の ML で共有できるようになっていますので、 ML ごとに編集したりする必要はありませんが、 マシンの設定によっては変更の必要があります。

お使いの OS で、以下のプログラムが以下の位置にあることを確認してください。


 sendmail : /usr/lib/sendmail
 sleep    : /bin/sleep
 rm       : /bin/rm

そうでないばあいは、エディタで aml.awk を開き(以下参照) 該当する項目を正しい値(そのコマンドが実際に存在するパス)に 変更してください。

また、ロック用のテンポラリ(一時)ファイルを作成するディレクトリを /tmp 以外にしたい場合は、LOCKFILE の値を変更してください。


------ aml.awk : 25 行目付近 ---------------------------

BEGIN { 
        VERSION   = "Mio's aml [Version 0.11 Alpha]"

        # Site Specific Setting
        MAILER     = "/usr/lib/sendmail"          # sendmail program
        SLEEP      = "/bin/sleep"
        REMOVE     = "/bin/rm"
        LOCKFILE   = "/tmp/.pidlock-" MLNAME

---------------------------------------------------------

 

1) メンバーリストファイルを作成します。

ファイル名は ML 名称.rec になります。 この例では /usr/lib/mail-list/TEST-ML.rec です。

メンバーリストファイルは、 同梱の雛型(TEST-ML.rec) を参考に、 1 行に 1 アドレスずつ、先頭から記述してください。 # で始まる行はコメントとみなされます。
(初めはとりあえず自分(管理者)のアドレスだけ書いてテストするのが良いでしょう)


 (/usr/lib/mail-list/TEST-ML.rec の 例)
 #
 # this is comment
 #
 test@mio.rim.or.jp
 hogehoge@foo.bar    # this is comment

 

2) カウンタファイルを作成します。

ファイル名は ML 名称.seq です。 touch コマンドを用いて作成します。 必ず ML の所有者(/etc/aliases で設定)が「読み書き」できるようにしてください。

 # cd /usr/lib/mail-list
 # touch TEST-ML.seq
 # chown owner.owner TEST-ML.seq
 # chmod 644 TEST-ML.seq

 

3) フィルタコマンドファイルを作成します。

あとで /etc/aliases に記述するファイルです。名前は何でも構いませんが、 ここでは、TEST-ML.cmd とします。 同梱の雛型(TEST-ML.cmd) を参考にして記述してください。

このファイル中で、awk のコマンドライン変数として以下の2つを指定する 必要があります。

また、以下は必要に応じて指定します。


 (/usr/lib/mail-list/TEST-ML.cmd の 例)
 "| /usr/bin/jgawk -v DOMAIN='@foo.bar' -v MLNAME='TEST-ML' -f /usr/lib/mail-list/aml.awk || exit 75"

 

4) /etc/aliases ファイルを編集します。

/etc/aliases ファイルに、以下の 3 行を挿入してください。 (同梱の aliases.add を参考にしてください)

 TEST-ML: :include:/usr/lib/mail-list/TEST-ML.cmd
 TEST-ML-request: owner-TEST-ML
 owner-TEST-ML: (ML の所有者)

TEST-ML をあなたの ML 名称に読み替えて設定してください。 :include: 以下には 3) で設定したファイルのフルパスを書いて下さい。

/etc/aliases の編集が終ったら、newaliases コマンドを実行するのを 忘れないようにしてください。

 

5) インストールできました。

ためしにメールを出してみてください。

 $ mail TEST-ML
 Subject: test
 test
 ^D
 $

メールがちゃんと到着するか、ヘッダは正しくついているか、を確認してください。

3. その他

このスクリプトは GNU GPL に基づくフリーソフトです。 ポリシーの変更をしない限りにおいて、自由に配布、改変することができます。 スクリプトの作者は、このプログラムを使用したことによって生じたいかなる 損害についても責任を負いません。詳しくは同梱の COPYING を参照してください。

このスクリプトおよびこのファイルの著作権は、 Nishiyama, Naoki / Mio Software lab. が所有しています。

Copyright (C) 1998 Nishiyama, Naoki / Mio Software lab.