Mailmanの設定

メーリングリストサーバ、Mailmanの設定方法です。
Mailmanは、バーチャルドメインでの利用が容易で、日本語対応したWEB管理画面が整備されているため、リストの管理やユーザ管理も容易です。
ここでは、MTAにPostfixを利用した例を紹介します。
検証環境にはCentOS-5を利用しました。


Mainmanのインストール

Mainmanは、CentOS-5標準のパッケージとして提供されていますので、ここではそれを利用します。
yum install mailman
*Apache(httpd)がインストールされていない場合は、依存関係でインストールされます。


Mailmanの初期設定

Mailmanを利用する為に、管理者パスワードの設定、設定ファイルの編集を行います。


管理者パスワードの設定

Mailman全体の管理権限を持つ管理者のパスワードを設定します。
パスワードの設定は、以下のコマンドで行います。
/usr/lib/mailman/bin/mmsitepass

New site password: <---パスワードを入力
Again to confirm password: <---確認のための再入力
Password changed.
		


Mailman設定ファイルの編集

Mailmanの設定は、まず/etc/mailman/mm_cfg.pyを編集します。

単独ドメインの場合

1つのドメインで利用する場合は以下のように設定します。
例では、MTAにはPostfixと連携します。
また、管理画面のWebサーバには、http://www.unixlife.jp/でアクセス、メールのドメインは、unixlife.jpとします。
なお、WEB管理画面から、メーリングリストを削除出来るようにしています。
(デフォルトではコマンドからしか削除出来ない)
mm_cfg.py

MTA = 'Postfix' <---連携するメールサーバソフト(今回はPostfix)
POSTFIX_ALIAS_CMD = '/usr/sbin/postalias' <---Postfixのaliasコマンド
POSTFIX_MAP_CMD = '/usr/sbin/postmap' <---Postfixのpostmapコマンド

DEFAULT_SERVER_LANGUAGE = 'ja' <---デフォルトの利用言語(日本語)
DEFAULT_URL_HOST   = 'www.unixlife.jp' <---WEB管理画面用のWEBサーバのURL
DEFAULT_URL_PATTERN = 'https://%s/mailman/' <---WEB管理画面をのHTTPSで利用する場合
DEFAULT_EMAIL_HOST = 'unixlife.jp' <---デフォルトのメールドメイン
DEFAULT_ARCHIVE = Off <---メール書庫を作成しない場合

add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes <---WEB管理画面からMLの削除を可能とする
		

バーチャルドメインで利用する場合

バーチャルドメインで利用する場合は以下のように設定します。
例では、MTAにはPostfixと連携します。
ドメインは以下の2つを利用する物とします。
1.unixlife.jp : Webサーバ=http://www.unixlife.jp/ , Mailドメイン=unixlife.jp
2.examples.com : Webサーバ=http://examples.com/ , Mailドメイン=examples.com

MTA = 'Postfix' <---連携するメールサーバソフト(今回はPostfix)
POSTFIX_ALIAS_CMD = '/usr/sbin/postalias' <---Postfixのaliasコマンド
POSTFIX_MAP_CMD = '/usr/sbin/postmap' <---Postfixのpostmapコマンド
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['unixlife.jp','examples.com'] <---利用するバーチャルドメインを列挙

DEFAULT_EMAIL_HOST = 'unixlife.jp' <---デフォルトのバーチャルメールドメイン
EXAMPLES_EMAIL_HOST = 'examples.com' <---追加のバーチャルドメイン

DEFAULT_SERVER_LANGUAGE = 'ja' <---デフォルトの利用言語(日本語)
DEFAULT_URL_HOST   = 'www.unixlife.jp' <---WEB管理画面用のWEBサーバのURL
EXAMPLES_URL_HOST = 'examples.com' <---WEB管理画面用のWEBサーバのURL
DEFAULT_URL_PATTERN = 'https://%s/mailman/' <---WEB管理画面をのHTTPSで利用する場合

add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) <---デフォルトのバーチャルメールドメイン
add_virtualhost(EXAMPLES_URL_HOST, EXAMPLES_EMAIL_HOST) <---追加のバーチャルドメイン

OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes <---WEB管理画面からMLの削除を可能とする
		

ここまでで、一旦、Mailmanの設定作業は終了です。
その他、設定項目の確認は/usr/lib/mailman/Mailman/Defaults.pyを参照してください。
次に、MTAのPostfixの設定を行います。


Postfixの設定

MailmanはMLごとにaliasを作成します。これをMTA側で読み込んで、配送処理が出来るように設定します。
設定は、/etc/postfix/main.cfで行います。

単独ドメインの場合

ローカルドメインのみを利用してる場合は、ローカルエリアスの設定を行います。

alias_maps = hash:/etc/aliases,hash:/etc/mailman/aliases
alias_database = hash:/etc/aliases,hash:/etc/mailman/aliases
allow_mail_to_commands = alias,forward,include
		

バーチャルドメインで利用する場合

バーチャルドメインで利用している場合は、ローカルエイリアスの設定と合わせて、バーチャルのエリアスも設定します。

virtual_alias_maps = hash:/etc/postfix/virtual,hash:/etc/mailman/virtual-mailman

alias_maps = hash:/etc/aliases,hash:/etc/mailman/aliases
alias_database = hash:/etc/aliases,hash:/etc/mailman/aliases
allow_mail_to_commands = alias,forward,include
		

PostfixユーザをMailmanグループに追加

/etc/mailman/aliase等をPostfixユーザが参照する為に、PostfixユーザをMailmanグループに追加します。
/etc/group
mailman:x:41:postfix

これでPostfixの設定は終了です。Postfixをreloadしておきましょう。
/etc/init.d/postfix reload


Mailmanの運用設定

Mailmanを運用するにあたり、各種管理作業用のcronとWEB管理画面の設定を行います。

Mailmanの起動と初期化

Mailmanを以下のコマンドで起動

/etc/init.d/mailman start

Mailmanのaliaseとvirtual-maulmanの初期化

以下のコマンドで、MailmanのAliaseを初期化します。
/usr/lib/mailman/bin/genaliases

管理用メーリングリストの作成

サイトリストと呼ばれる管理用メーリングリストを作成します。
/usr/lib/mailman/bin/newlist -l ja mailman

Enter the email of the person running the list: admin@unixlife.jp <---ML管理者のメールアドレス
Initial mailman password: <---ML管理画面へのログインパスワード
		

cronの設定

Mainmanは各種の管理作業を行う為に、cronを実行する必要があります。
cronの定義は、/usr/lib/mailman/cron/crontab.inに記載されていますので、これをcronに設定します。
crontab -u mailman /usr/lib/mailman/cron/crontab.in


WEB管理画面の設定

Mainmanインストール時に、/etc/httpd/conf.d/mailman.confが作成されていると思います。
MailmanとApacheを起動すれば、そのままの設定で利用出来ます。
/etc/init.d/mailman start
/etc/init.d/httpd start
このファイルの設定で、mailmanの管理画面にアクセス出来ます。
管理画面には、http://www.unixlife.jp/mailman/adminにアクセスしてください。
なお、デフォルトの設定では、アクセス制限などはかかっていませんので適時設定を追加してください。


起動設定

MailmanとApacheを自動起動するように設定しておきます。
chkconfig mailman on
chkconfig httpd on


Web管理画面での解説は割愛させて頂きます。利用し易い管理画面なので、いろいろ試してみてください。