メーリングリストサーバの構築 (Postfix バーチャル環境での Mailman リストサーバの構築)
- Mailman
- http://www.list.org
目次 |
設定のポイントと注意点
- Mailman がバーチャル環境で動作する大まかな流れ。
- ML のメールアドレスを virtual_alias_maps で Mailman の管理するアカウントへエイリアスする。
- エイリアスしたアカウントごとに alias_maps で、mailman コマンドを実行する。
Mailman は Postfix の alias_maps 設定で mailman コマンドを実行するため、ローカル配送を使用する。Postfix をバーチャルのみで運用している場合、virtual 配送と local 配送を分ける必要がある。 |
- Mailman 2.1.5 以下のバージョンは、メールに通し番号が付けれない。
- 例えば [Listname: 1234] みたいに通し番号がつかない。CentOS 4.x の Mailman パッケージは 2.1.5。
- パッチはある。http://mm.tkikuchi.net/indexja-old.html
- Mailman でバーチャルドメイン運用は可能だが、それぞれのドメインで重複する名前のメーリングリストを作ることはできない。listname@list.example.com, listname@list.example.net とかはできない。
- 解決方法は、それぞれのドメイン用に Mailman をビルドするか、パッチをあててビルドするしかないらしい。
設定例の概要
Postfix + PostfixAdmin + MySQL の環境で、Mailman を運用する。
メーリングリストのメールアドレスは list.example.com のようにして、通常のメールアドレス example.com と同じドメインのサブドメインで動かす。(メーリングリスト専用ドメインを必要としない。)
- 通常のメールアドレス:
- NAME@example.com
- NAME@example.net
- メーリングリストのメールアドレス:
- LISTNAME@list.example.com
- LISTNAME@list.example.net
DNS のゾーン情報はこんなかんじ
[example.com.zone] example.com. IN MX 10 mx.example.com. example.com. IN MX 20 mx2.example.com. list.example.com. IN MX 10 list.example.com. list.example.com. IN MX 20 list2.example.com. mx.example.com. IN A 192.168.1.1 mx2.example.com. IN A 192.168.1.2 list.example.com. IN A 192.168.1.1 list2.example.com. IN A 192.168.1.2 [example.net.zone] example.net. IN MX 10 mx.example.net. example.net. IN MX 20 mx2.example.net. mx.example.net. IN A 192.168.1.1 mx2.example.net. IN A 192.168.1.2
PostfixAdmin でメーリングリスト用のドメインを登録しておく
メーリングリスト用に list.example.com, list.example.net ドメインを使うので、New Domain でドメインを登録しておく。(ドメインのみ登録する。ユーザやエイリアスは追加しないこと。)
Postfix の設定
/etc/postfix/main.cf の内容(抜粋)
mydestination = $myhostname, localhost.$mydomain, localhost local_transport = local alias_maps = hash:/etc/aliases hash:/etc/mailman/aliases virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf hash:/etc/mailman/virtual-mailman owner_request_special = no recipient_delimiter = +
- local_transport = local
ローカル配送とバーチャル配送とを分ける。ただし、これはデフォルト設定。 |
- mydestination = $myhostname, localhost.$mydomain, localhost
- ローカル配送の最終到達ドメイン。
ただし、バーチャルドメインを指定してはいけない。 |
- ので、$myhostname がバーチャルで使用しているドメインならば、$myhostname を記述しないようにする。
- mydestination
- $local_transport で指定したメール配送 transport を使って配送されるドメインのリスト。
- alias_maps = hash
- /etc/mailman/aliases
- ローカル配送のエイリアスデータベース。Mailman が作成するので指定しておく。
- virtual_alias_maps = hash
- /etc/mailman/virtual-mailman
- メーリングリストで使用するメールアドレス(ドメイン)を、ローカル配送する検索テーブルが書かれている。Mailman が作成するので指定しておく。
- owner_request_special = no
- Postfix は -owner と -request のアドレスを特殊扱いするので、Mailman で使用できるように特殊扱いしないようにする。
- recipient_delimiter = +
- Mailman で必要な設定。拡張メールアドレスの区切り文字を + にする。
Mailman のインストール
インストール
- 1. yum でインストールする
# yum install mailman
yum でインストールした場合、インストールされるファイルの場所
/etc/mailman/ | Mailman 設定ファイル |
/usr/lib/mailman/ | Mailman のバイナリやスクリプト |
/etc/httpd/conf.d/mailman.conf | Mailman Web インターフェス用 apache 設定ファイル |
/etc/init.d/mailman | Mailman 起動スクリプト |
- 2. Mailman にバーチャルドメイン対応の設定をする
mm_cfg.py にサイトの設定を書くが、同じディレクトリ内にある Defaults.py にデフォルトの設定が書かれている。mm_cfg.py に追加する設定のデフォルト値が Defaults.py に書かれているので、Defaults.py を参考にする。
- /etc/mailman/mm_cfg.py の内容
#DEFAULT_URL_HOST = fqdn #DEFAULT_EMAIL_HOST = fqdn #add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) MTA = 'Postfix' POSTFIX_STYLE_VIRTUAL_DOMAINS = ['list.example.com','list.example.net'] add_virtualhost('list.example.com','list.example.com') add_virtualhost('list.example.net','list.example.net') DEFAULT_SERVER_LANGUAGE = 'ja'
- POSTFIX_STYLE_VIRTUAL_DOMAINS = ['ドメイン1','ドメイン2','ドメイン3']
- 使用するバーチャルドメインをコンマで区切り書く
- add_virtualhost(web.example.com, example.com)
- Web インターフェース用の URL と、バーチャルドメインの対応付けをおこなう。
- 3. mailman という名前のリスト(メーリングリスト)を作成する
mailman という名前のメーリングリストが存在しないと、Mailman が起動すらしないので作成する。
# /usr/lib/mailman/bin/newlist mailman@list.example.com リスト管理者のメールアドレスを入力してください: メールアドレス mailman の初期パスワード: パスワード(表示しない) Enter を押して mailman の管理者にメール通知する...[Enter]
この mailman という名前のメーリングリストの意味は
> http://mm.tkikuchi.net/mailman-install/node40.html より引用 Mailman とメールサーバの統合を完成させたら, 次に ``サイト全体 のメーリングリストを作る必要があります. これはパスワード備忘通知の発信者として現れるものであり, Mailman を正しく運用するのに必要なものです. 通常, これは mailman という名前のリストですが, 変更する必要がある場合は, mm_cfg.py の中で MAILMAN_SITE_LIST 変数を変更してください.
- 4. サイト全体の管理パスワードと、メーリングリスト作成パスワードを作る
/usr/lib/mailman/bin/mmsitepass &color(red){サイト管理パスワード}; /usr/lib/mailman/bin/mmsitepass -c &color(red){メーリングリスト作成パスワード};
- 5. genaliases スクリプトを実行
/usr/lib/mailman/bin/genaliases スクリプトを実行して aliases, virtual-mailman ファイルを初期化する。
chown mailman:apache /etc/mailman/aliases chown mailman:apache /etc/mailman/aliases.db chown mailman:apache /etc/mailman/virtual-mailman chown mailman:apache /etc/mailman/virtual-mailman.db
Mailman を起動
/etc/init.d/mailman start
メーリングリストを削除するコマンド
/usr/lib/mailman/bin/rmlist -a <LIST_NAME>
参考サイト
- Postfix 設定パラメータ
http://www.postfix-jp.info/trans-2.3/jhtml/postconf.5.html
- GNU Mailman - インストールマニュアル