前のメモでも少し触れましたが、メーリングリストを運用しています。
メーリングリストを利用したければ、管理アドレスを見つけてメールやWebサイトから登録すればOK。
利用ではなく、運用したい、つまりサーバーを立てる側になると、メーリングリスト管理ツールをインストールする必要があるので多少面倒ですが、管理ツールを使えば簡単。
メーリングリスト管理ツールで有名なのが、ezmlm, fml, Majordomo あたりですが、私は2003年頃からCMLというツールを使わせてもらっています。
CMLメーリングリスト管理ツールの良いところはUnix標準コマンドで動作することと、OSにログインしなくても電子メールにコマンドを書き込んで送ることで、インストールした後はリモートシステム管理出来ること。
手間も掛からず順調に動いていると思っていたのですが、配信リストをメンテナンスする必要が出て来ました。手作業でも管理出来るのですが、システムの整合性を保つには管理コマンドで行うのがベスト。
ということで、管理アドレスに管理コマンドを送ってみたのですが、応答が無い!
メールサーバーのログを見てみると、管理コマンドメールは届いているのですが、処理されずそのまま消えてしまってました。
シェルでバッグオプションを使って、システムが行っていることを、手動で再現してみると、cmad の中で、次の二行のエラーが発生していることが判明。
/home/..../cml/cmad: 1: Syntax error: Unterminated quoted string /home/..../cml/cmad: 656: Syntax error: Error in command substitution
以前は問題なく動いていたんですけどね。cmad なんて、スクリプトに一切触っていないはずだから、スクリプトが突然動かなくなった原因がわからない。プログラミング中なら起こりうるエラーですが、編集なんかしていませんからね。シェルの仕様が変わった?なんてあり得ないはず。
多分、1行目の方で、文字列の区切りを間違ってしまった影響で、その次のコマンドもコマンドの区切りを間違ってしまってエラーになっているものと思いますが、cmad はツールのスクリプトそのものなので私には手が出せない。
なぜ突然エラーに?と、思うものの CML はメジャーツールではないため、検索しても情報がありません。
とりあえず、最新版にあげてみるしかないのかも。と思うものの、このCML、あまり有名なツールではないため、リリースから20年経過した現在、最新版がどこにあるのか検索しないとわからない!
いろいろ条件を絞って検索してようやく
http://www.wkj.forus.or.jp/CML/
を見つけました。
ところが、中のリンクは切れてます。
更にリンクをたどって、ダウンロードサイトは、
http://ftp.ecopo.ec.kagawa-u.ac.jp/pub/ml/CML/
と判明。最終更新が2001年とは・・・・・。見つけるのに苦労しましたが、配布元がそのまま残っているのがありがたい。
CML-4.1-Release.tar.gz をダウンロードし、解凍。
./Configure で上書きインストール。これで最新版に出来たはず。
このあと、メールによるメンテナンスを試してみたところ、リモートメンテナンスコマンドが無事に動作。
しかし、ver. 4.1 の cmad と ver. 4.0 の cmad を diff で比較しても、区切り位置につながる修正は見つからないんですよ。わけがわからない。
でもまあ、問題は解決しました。
メール投稿を登録ユーザーに配信する機能は、この20年間全く問題なし。
気付いたらリモートメンテナンス機能だけが止まっていたという訳。恐らくきっかけは、CMLを動かしているFreeBSD OSを何度も更新しているためだと思いますが、配信の方はOSバージョンアップ毎に確認していたものの、リモートアドミン機能の方は手作業で代用も出来るため、毎回確認するようなことはしていませんでした。どこかで Bシェル環境がアップデートされたんでしょうね。
CMLはメーリングリストとして、とっても便利なツール。
sendmail をそのまま利用しているため、配信メールアドレス数が増えると、全部のアドレスに配信が終了するまで待たされる場合があります。配信リストが100くらいになると、配信し終わるのに10分くらい掛かる場合がありますが、配信スピードが気になるなら、Smart Relay Host を使えば解決。
何よりもメーリングリストを動かすためにシステム管理の仕事を最小に出来るのがいいところ。
20年を経過した今でも使えることに、感謝。