連載
» 2002年01月16日 00時00分 UPDATE

実用qmailサーバ運用・管理術(5):メーリングリストの構築と運用(後編) (1/3)

今回はezmlmを拡張して、より高度で便利な機能を実現してみよう。ezmlmにidx-patchを当てることにより、Subjectの加工やダイジェストメールの生成などが可能になる。

[鶴長鎮一,@IT]

 前回は、運用規模ごとに最適と思われるメーリングリスト(以下ML)の構築方法を紹介しました。ezmlmは、大規模向けをうたいながらも導入が比較的容易であり、多くの場面で利用されています。

 管理者にとって、ezmlmは配信性能に優れ、メールループの防止機能も備えているなど使い勝手の良いものですが、MLを使用する一般ユーザーから見ると少し物足りなく感じるのも事実です。例えば、MLで流れた古いメッセージを取り出すのは1通ずつという制限があり、Subject(件名)に通し番号を振ったりML名を付加することも、メッセージのまとめ読みに便利なダイジェスト機能を利用することもできません。MLソフトとして名高いfmlやMajordomoではすでに実現されているのに、後発のezmlmに備わっていないのは残念です。しかし、ezmlmにはそれを十分に補うパッチが用意されています。

idx-patchの利用

 idx-patchは、ezmlmを拡張するパッチで、Frederik P.Lindberg氏によって開発・メンテナンスされています。このパッチを当てることで、ダイジェストリストを作成したりSubjectを加工したりできるようになります。

idx-patchのインストール

 idx-patchを

ftp://ftp.ezmlm.org/z9/infosys/mail/qmail/ezmlm-patches/ezmlm-idx-0.40.tar.gz

から入手し、前回のezmlm-0.53.tar.gzと同じディレクトリに保存して以下の操作を行います。

# tar xvfz ezmlm-idx-0.40.tar.gz
# mv ezmlm-idx-0.40/* ezmlm-0.53/
# cd ezmlm-0.53
# patch < idx.patch
# make clean

 この後はezmlmのインストールと同じです。

# make
# make man

 ここで、自動応答メッセージや操作方法を案内するメッセージを日本語化するためにezmlmrcファイルをezmlmrc.jaで置き換えます。

# cp ezmlmrc.ja ezmlmrc

 最後に、前回インストールしたezmlmコマンドなどを置き換えます。

# make setup

 インストールは以上です。基本的なML作成法はidx-patchを当てる前と変わりません。

ezmlm-make 設定ファイルの保存先 /var/qmail/alias/.qmail-ML名 ML名 自ドメイン

idx-patchインストール後のオプション

 ezmlm-makeのオプションはidx-patch適応後もそのまま引き継がれます。ただし、idx-patchを適用したことで以下のように拡張されます。

-a アーカイブを保存する(*)   -A アーカイブを保存しない
-c .ezmlmrcファイルを使用する   -C .ezmlmrcファイルを使用しない(*)
-d ダイジェストを作成する   -D ダイジェストを作成しない(*)
-e 既存設定を修正する   -E 設定を新規作成する(*)
-f prefix(Subject:の見出し)を付ける   -F prefix を付けない(*)
-g アーカイブの取り出しを制限する   -G アーカイブを公開する(*)
-i インデックスを作成する(*)   -I インデックスを作成しない
-k 投稿禁止リストを作成する   -K 投稿禁止リストを作成しない(*)
-l 参加者一覧の取り出し   -L 参加者一覧なし(*)
-m 投稿を審査する   -M 投稿を審査しない(*)
-n DIR/textの編集を許可   -N DIR/textの変更不可(*)
-p 公開MLとする(*)   -P MLを公開しない
-q リクエスト形式を使う   -Q リクエスト形式を使わない(*)
-r 遠隔管理させる   -R 遠隔管理させない(*)
-s 登録審査をする   -S 登録審査をしない(*)
-t 添付文書を作る   -T 添付文書を作らない(*)
-u 登録ユーザーのみ投稿可能   -U だれでも投稿可能(*)
-V バージョンを表示する   -v バージョンを表示する
-x 特定のMIMEパートを削除する      
(*)はデフォルトで有効になっているもの

 オプションをいちべつしただけでも、fmlやMajordomoに引けを取らない豊富な機能が追加されていることが分かります。また、MLの設定を1行のコマンドラインのオプションで実現できてしまうのも魅力の1つです。

idx-patchを利用したMLの作成

 早速、次の条件でMLを作成してみましょう。

設定ファイルの保存先: /var/ezmlm/ml2
ML名: ml2
自ドメイン: example.jp
そのほかの条件: SubjectにML名を付加
MLメンバー以外の投稿を禁止

 この条件を満たすMLを作成するには、ezmlm-makeを以下のように実行します。

# /usr/local/bin/ezmlm/ezmlm-make -fP /var/ezmlm/ml2 /var/qmail/alias/.qmail-ml2 ml2 example.jp

 コマンドを実行するとMLが作成され、さらに/var/qmail/alias/に次のファイルが作られます。

/var/qmail/alias/.qmail-ml2(/var/ezmlm/ml2/editorへのリンク)
/var/qmail/alias/.qmail-ml2-owner(/var/ezmlm/ml2/ownerへのリンク)
/var/qmail/alias/.qmail-ml2-return-default(/var/ezmlm/ml2/bouncerへのリンク)
/var/qmail/alias/.qmail-ml2-default(/var/ezmlm/ml2/managerへのリンク)

 また、前回と同様に設定ファイルの保存先である/var/ezmlm/ml2のオーナーを「alias」に変更することを忘れずに行います。

# chown -R alias /var/ezmlm/ml2

 上記のファイルを直接編集することはありませんが、ml2@example.jpあてに届くメールがどのように処理されるかを知ることができます。.qmailファイルの書式と受信メールの制御方法については、連載第3回を参考にしてください。これらのファイルが保存されている/var/ezmlm/ml2には、MLの動作を制御するファイルも用意されています。直接編集することでMLをより使いやすくするファイルもあるので、ezmlm-makeで使用するオプションと併せて見ていきましょう。

 まず、使用するコマンドについて予習しておきましょう。ezmlmでは、ML登録者などのリストをsubscribersディレクトリで53のファイルに分割して保存します。viなどのエディタで管理するのでは困難になるため、次のコマンドを利用します。

# /usr/local/bin/ezmlm/ezmlm-list 対象ディレクトリ
対象ディレクトリに登録されているメールアドレスの一覧を見る
# /usr/local/bin/ezmlm/ezmlm-sub 対象ディレクトリ メールアドレス
対象ディレクトリにメールアドレスを新規追加する
# /usr/local/bin/ezmlm/ezmlm-unsub 対象ディレクトリ メールアドレス
対象ディレクトリからメールアドレスを削除する

 ezmlm-make実行時にオプションを指定することで、作成するMLの振る舞いを決められます。では、作成済みのMLの振る舞いを変えたい場合はどうしたらよいのでしょうか。その場合は-eオプションを同時に指定して、設定ファイルの上書きを行います。これを行っても、アーカイブやインデックス、ML登録者情報などは引き継がれます。

注:以降の例では、前述の仕様に従い「example.jp」を自ドメイン、「ml2」をML名、「/var/ezmlm/」を設定ファイルの保存先としています。実際には各自の環境などに応じて置き換えてください。また、すべての作業をrootで行っていますが、一般ユーザーでも手軽にMLを作成できます。ユーザー名をfoo、ML名をmlとした場合は以下のようにezmlm-makeを実行します。

$ /usr/local/bin/ezmlm/ezmlm-make ~/設定ファイルの保存先 ~/.qmail-ml foo-ml 自ドメイン

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。