Mailman

最終更新日時:2009-03-31 11:12:24
メール関連

Mailman とは


Mailman はいわゆる ML を構築するためのアプリケーションです。
会員、リストオーナーに対しての管理用インターフェースが Web ベースで提供されているので、管理が大変便利です。
その他様々な機能がありますが、多すぎて使いこなせていません(/o\)

インストール


バージョン 2.1.5 の例です。

Mailman は Python によって書かれていますので、Python がインストールされていない場合、または Python が古い場合には、Python をインストールします。
また、gettext のバージョンが古いとダメな場合があるので、その時には gettext もインストールします。
さて、準備ができたらまず、Mailman の実行ユーザを作成します。
※ディレクトリとかは好みで。

 # useradd mailman -d /home/mailman
 # ln -s /home/mailman /usr/local/mailman
 # chmod a+rx,g+ws /home/mailman


以下、mailman ユーザにて作業を行います。
Mailman は Mailman 本体と Mailman-2.1.5 ジャンボ修正パッチ、python email パッケージ用パッチ(2004/02/07) なるものからなっており、これらをまず 国際化 Mailman に関する日本語情報から取得します。
取得したらアーカイブを解凍して、ジャンボ修正パッチを適用します。

 % gzip -dc mailman-2.1.5.tar.gz | tar xvf -
 % cd mailman-2.1.5
 % patch -p0 < ../mailman-2.1.5+patch.20040516


次に configure を実行します。
--with-cgi-gid, --with-mail-gid は重要なので Web サーバ、メールサーバの設定を確認してから設定を行います。

 % ./configure --with-cgi-gid=webgroup --with-mail-gid="nofiles" 


configure が終了したら make してインストールします。
(何故か messages/fr で失敗するので messages/Makefile を編集して fr を除く)

 % make
 % make install


Mailman ではパーミッション等の確認および設定を行うコマンドがありますので、以下のような感じで設定を行います。

 % cd /usr/local/mailman
 % bin/check_perms
 % bin/check_perms -f


ここまでで Mailman のインストールは完了なのですが、Python の修正のため、python email パッケージ用パッチ(2004/02/07) を適用します。
このパッチはインストール後でないとダメらしいです。

 % cd pythonlib
 % patch -p0 < ../src/email.patch.20040207


設定


基本的には、付属の INSTALL の通りということで(/o\)

qmail を使用すると mailman リストに配送時に gid 関連でエラーが出ます。
このため、/etc/passwd の mailman のホームディレクトリを /nonexistent 等、存在しないディレクトリに設定し、.qmail-mailman* の設定を /var/qmail/alias で行う必要があります。

新規 ML 作成手順


まず、管理サイトの新規作成にアクセスします。
次に、下記の項目等を設定し、「リストを作成する」ボタンをクリックします。

・ リストの名前
・ リスト管理者アドレスの初期設定
・ 初期リストパスワード
・ 初期パスワードの確認
・ リスト作成者の認証パスワード

管理者宛に新規作成メールが届いていることを確認します。
sendmail を使っているのであれば、このメール中に書いてあるものをそのまま /etc/aliases に追加し、newaliases を実行すればOKです。
qmail を使用している場合は、それなりの変換が必要です。
例えば以下のような感じ。

 echo    "|/usr/local/mailman/mail/mailman post all"        > .qmail-all
 echo    "|/usr/local/mailman/mail/mailman admin all"       > .qmail-all-admin
 echo    "|/usr/local/mailman/mail/mailman bounces all"     > .qmail-all-bounces
 echo    "|/usr/local/mailman/mail/mailman confirm all"     > .qmail-all-confirm
 echo    "|/usr/local/mailman/mail/mailman join all"        > .qmail-all-join
 echo    "|/usr/local/mailman/mail/mailman leave all"       > .qmail-all-leave
 echo    "|/usr/local/mailman/mail/mailman owner all"       > .qmail-all-owner
 echo    "|/usr/local/mailman/mail/mailman request all"     > .qmail-all-request
 echo    "|/usr/local/mailman/mail/mailman subscribe all"   > .qmail-all-subscribe
 echo    "|/usr/local/mailman/mail/mailman unsubscribe all" > .qmail-all-unsubscribe


その他


リストの削除。

 % rmlist list1


アーカイブも削除してよいのであれば -a を指定します。
alias は自動的に削除されないので、手動で削除します。

お問い合わせは 掲示板 にて。