おまけ qmailでメーリングリスト
2003/2/13
qmailのメーリングリストツールにはezmlmがあります。
他にもmajordomoにパッチ当てて使ったりもできるのですが、sendmailからの以降を意識しなければezmlmを使った方が楽です。
もともと大規模なメーリングリストの運用を前提に作られたと言うことで、かなり安定して動きます。
私が知っているところではNetBSDのanounce-jaのメーリングリストがezmlmで運用されているようです。
1.ソースの展開
いつものやつです。
% tar zxvf ezmlm-0.53.tar.gz
% cd ezmlm-0.53
2.コンパイル
これもいつものやつですが、ezmlmはqmailファミリーなのでqmail方式でいきましょう。
% make
% su
# make setup
# make install
3.メーリングリストの作成
続いてメーリングリストを作成します。
ezmlmのよいところはshellが使えるpop3ユーザなら自由に独自のメーリングリストを作れることにあります。
ですが今回はrootがメーリングリストを作ることにします。
まず最初にメーリングリストの制御ファイルやアーカイブを保存するディレクトリを用意します。
別にどこに用意してもいいのですが、せっかくqmailディレクトリがあるので、この辺にまとめておくことにします。
適当にいまあるディレクトリを使うというのであればこの作業は不要です。
# mkdir -p /var/qmail/ezmlm
それではさっそく作ってみましょう。testmlというメーリングリストを作る場合はこんな感じになります。
# /usr/local/bin/ezmlm/ezmlm-make /var/qmail/ezmlm/testml /var/qmail/alias/.qmail-testml testml domain.local
ezmlm-make --helpとやればコマンドの説明が出てきますが、簡単に解説しておきます。
まず第一引数の/var/qmail/ezmlm/testmlはメールの制御ファイルやアーカイブを保存するディレクトリです。
次の/var/qmail/alias/.qmail-testmlはaliasファイルです。メールは一旦ここに到着するのですが、すぐに別のプログラムに渡されます。
testmlはメーリングリストの名前でdomain.localはドメイン名です。
成功すると/var/qmail/ezmlmと/var/qmail/aliasに関連ファイルができます。
でも、このままだとまだメーリングリストは機能してくれません。
rootがメーリングリストを作ったのでメールを分配するaliasがアクセスできないのです。
ということで、ディレクトリの所有権をaliasに譲渡することにします。
# chmod -R alias:qmail /var/qmail/ezmlm
これで配下のファイルがすべてalias:qmailのものになりました。
4.ユーザの追加
購読者を追加します。
追加のコマンドは/usr/local/bin/ezmlm/ezmlm-sub [MLのディレクトリ] [メールアドレス]です。
さっきのtestmlにhoge@domail.localを追加する場合はこんな感じです。
# /usr/local/bin/ezmlm/ezmlm-sub /var/qmail/ezmlm/testml hoge@domain.local
削除するときはezmlm-subをezmlm-unsubです。
まとめてたくさんアドレスを加えたいことがあると思いますが、うまい方法が見つかりませんでした。
私はテキストで1行1アドレスの表を作って、viでjoinしてcatして読み込ませるという原始的な方法で登録しました。もっとスマートな方法があるかもしれません。
現在の参加者を確認したい場合はezmlm-listを使います。
# /usr/local/bin/ezmlm/ezmlm-list /var/qmail/ezmlm/testml
5.その他の設定
メーリングリストの運営でよく見るのがsubject prefixです。
subjectが[testml 1]などのおまけが付いていることがあると思います。これらの設定はそれぞれのMLのディレクトリに入っているファイルで編集可能です。subject prefixはそのまんまprefixというファイルです。
そこに[testml #]といれると上記のprefixがつきます。
あとはヘッダの編集です。
メーリングリストに投稿されたメールへの返事はメールの差出人ではなく、メーリングリストに返してほしいものです。
なのでReply-Toヘッダをつけます。
これもそのまんまheaderaddファイルです。
ezmlmの設定ファイルの名前って直感的でわかりやすくていいですね。
ちなみに、ApacheのメーリングリストではなぜかReply-Toヘッダは有害だということで禁止しています。
何度読んでもなぜ有害なのかよくわからないのですが・・