メーリングリストサーバの構築 (Postfix バーチャル環境での Mailman リストサーバの構築)

提供:maruko2 Note.
移動: 案内, 検索
Mailman
http://www.list.org

目次

設定のポイントと注意点

Mailman-virtual.gif

重要

Mailman は Postfix の alias_maps 設定で mailman コマンドを実行するため、ローカル配送を使用する。Postfix をバーチャルのみで運用している場合、virtual 配送と local 配送を分ける必要がある。


例えば [Listname: 1234] みたいに通し番号がつかない。CentOS 4.x の Mailman パッケージは 2.1.5。
パッチはある。http://mm.tkikuchi.net/indexja-old.html
解決方法は、それぞれのドメイン用に 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 でドメインを登録しておく。(ドメインのみ登録する。ユーザやエイリアスは追加しないこと。)

PostfixAdmin add a new domain.png


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>

参考サイト

http://www.postfix-jp.info/trans-2.3/jhtml/postconf.5.html

http://mm.tkikuchi.net/mailman-install/index.html

LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数