サーバー構築日記へ

ezmlmとezmlm-idxの導入


 最近、egroupsがおかしな動作をすることを多く感じます。メールがなかなか配信されなかったり、中で順番が入れ替わっていたり、突然とまったり。
 さらに最近やたらと広告スペースが大きくなりました。メッセージの下部とはいえちょっと気になります。
 これらは有料化への前段階にみえてなりません。

 ということで、自分でMLを運営することにしました。
 で、どうせ運営するなら使いやすいMLにしたいと思うのは当然です。今までegroupsを使っていたので、それに近い機能は欲しい。ということで、qmailとezmlmとezmlm-idxとezmlm-cgiを組み合わせたMLを作成することにしました。

 2002.04.19
 ezmlm-cgiだとパーミッションとかの関係からどうもセキュリティに不安があります。
 また、検索システムもつけたかったため、システムを変更することにしました。
 導入したのはMHonArcとNamazuです。

ezmlmとezmlm-idxのインストール
MLの作成
MLの管理
MLの設定(subject関係)
ezmlm-cgiの設定
MHonArcの導入 New!

・ezmlmとezmlm-idxのインストール
(以下、実用qmailサーバ運用・管理術第4回第5回を参考にしています)

 ezmlm-0.53とezmlm-idx-0.40をダウンロード。
# cd /tmp
# wget ftp://ftp.ezmlm.org/pub/patches/ezmlm-0.53.tar.gz
# wget ftp://ftp.ezmlm.org/pub/patches/ezmlm-idx-0.40.tar.gz


 それぞれを解凍。
# tar xvzf ezmlm-0.53.tar.gz
# tar xvzf ezmlm-idx-0.40.tar.gz


 ezmlm-idxをezmlmディレクトリに移してパッチを当て、makeします。
 移動の際に同じファイル名のものがでますが全部上書きして構わないようです。
# mv ezmlm-idx-0.40/* ezmlm-0.53/
# cd ezmlm-0.53
# patch < idx.patch
# make clean
# make
# make man


 自動応答メッセージなどのファイルを日本語のものにしてインストール。
# cp ezmlmrc.jp ezmlmrc
# make setup



・MLの作成

 ezmlmを利用したMLには2種類あります。
 1つがユーザが作るML。もう1つがルート権限で作るMLです。
 ユーザ権限で作る(例えばnobodyがつくる)MLは、nobody-test@domainのようなアドレスになります。翻ってルート権限で作ると、ml@domainのようなMLが作成できます。

 ここではルート権限でMLを作成します。idxパッチをいれたezmlmのオプションについてはこちらを参照
 作るMLは、見出し(prefix)付きで非公開MLでarchiveも非公開で登録ユーザのみ投稿可能とします。
 ちなみにここではdomain名をexample.com、ML名をtestとします。
# /usr/local/bin/ezmlm/ezmlm-make -fgPu /var/ezmlm/test /var/qmail/alias/.qmail-test test example.com
# chown -R alias /var/ezmlm/test


 これで管理ディレクトリを/var/ezmlm/testとしたtest@example.comというMLが作成されました。


 ユーザ権限で作る場合

 ユーザkiraがtestというMLを作る場合を考えます。
$ /usr/local/bin/ezmlm/ezmlm-make -fgPu /home/kira/ML/test /home/kira/.qmail-test kira-test example.com

 これで管理ディレクトリを/home/kira/ML/testとしたkira-test@example.comが作成されます。
 ルート権限で作った場合のように管理ディレクトリのオーナーを変える必要はありません。


・MLの管理

 管理者側で登録者を追加するには下記のようにします。
# /usr/local/bin/ezmlm/ezmlm-sub /var/ezmlm/test user@domain user2@domain user3@domain

 管理者側で登録者を削除するには下記のようにします。
# /usr/local/bin/ezmlm/ezmlm-unsub /var/ezmlm/test user@domain

 ML登録者のリストを表示させるには下記のようにします。
# /usr/local/bin/ezmlm/ezmlm-list /var/ezmlm/test

 コントロール用アドレス群。test@example.comの場合。
test@example.com投稿用アドレス
test-subscribe@example.com登録用アドレス
test-unsubscribe@example.com退会用アドレス
test-get.123@example.com特定メーセージ取出し用アドレス
test-help@example.com案内メッセージ用アドレス
test-request@example.com「test-help@example.com」と同じ


・MLの設定
(以下、http://www.islab.is.tsukuba.ac.jp/~koni/Koni/qmail.htmlを参考にしています)

 ここでの例はルート権限で作成したML名test@example.com、管理ディレクトリ/var/ezmlm/testです。

・見出しに番号を付ける
/var/ezmlm/test/prefixに#を挿入すればよい。
[test: #]

・番号を任意の数からスタートさせる
/var/ezmlm/test/num:の左側の数字を変更する。
5:1 ←次のメールが6になる

・返信の際もsubjectの先頭にprefixが来るようにする
 基本的にMLで返信をした際、 [test: 4]テスト などのように元subjectにすでにprefixが入っていると、返信されたsubjectは Re:[test: 4]テスト のようになってしまいます。
 それでは格好悪いので、[test: 5]Re:テスト と表示したいときには次のように変更を加えます。
# cd /var/ezmlm/test
# vi editor


|/usr/local/bin/ezmlm/ezmlm-send '/var/ezmlm/test'

この行を下記のように変更します。改行せずに書いてください。

| sed 's/^Subject: \(R[Ee]: \)*\[test: [0-9][0-9]*\] \(R[Ee]:\)*\(.*\)$/Subject: \1\3/' | /usr/local/bin/ezmlm/ezmlm-send '/var/ezmlm/test' | /usr/local/bin/ezmlm/ezmlm-warn '/var/ezmlm/test' || exit 0
  ※行が変わるところに空白が入らないように気をつけてください。

・返信アドレスをMLアドレスにする
 /var/ezmlm/ml/headeradd に次の文字列を挿入する。
 Reply-to: test@example.com


・ezmlm-cgiの設定

 次ページ参照

・MHonArcの導入

 次ページ参照



※参考サイト
 メイリングリスト(ML)を運営してみませんか : qmail、ezmlmのオフィシャルサイトの日本語訳。
 第4回 メーリングリストの構築と運用(前編) : qmail、もしくはezmlmを利用したML構築について
 第5回 メーリングリストの構築と運用(後編) : ezmlm + ezmlm-idxなML構築について
 メールサーバの設定 : Koni's Home Pageの研究室インストール履歴。subjectの設定に関して。