Postfix と Mailman を統合すると, 新しいリストを作成したり, リストを削除したときに, Postfix のエイリアスデータベースが自動的に 更新されるようになります. これを実現するための手順は以下のとおりです.
以下の説明では, Mailman がデフォルトの位置, つまり /usr/local/mailman にインストールされているものと仮定します. もし, そうでなければ, configure で用いた --prefix と --with-var-prefix のオプションに従って読み替えてください.
MTA = 'Postfix'
変数 MTA は Mailman/MTA ディレクトリにあるモジュールの 名前を指定します. ここには, リストが作成/削除されるときに 実行される, メールサーバ固有の関数が入っています.
% cd /usr/local/mailman
% bin/genaliases
data/aliases と data/aliases.db の所有者が
mailman で, グループ所有者が mailman であることを
確認してください. これらは configure コマンドで設定したユーザ
グループです. また, 両方のファイルはグループ書き込み許可が必要
です:
% su
% chown mailman:mailman data/aliases*
% chmod g+w data/aliases*
/usr/local/mailman/data/aliases
最後の .db が付いていないことにも注意してください.
alias_database にこれを入れてはいけません. なぜなら, Postfix
の newaliases コマンドが Mailman の aliases.db
ファイルを書き換えてしまうからです. しかし, ローカルアドレスを探索する
ときには aliases.db を見てもらいます.
このエントリについて hash: スタイルのデータベースを作りたい
と思うでしょう. これが記入例です:
alias_maps = hash:/etc/postfix/aliases,
hash:/usr/local/mailman/data/aliases
mailman ユーザを追加した
後で Mailman を configure していればデフォルトになります.
aliases.db ファイルの所有者が mailman なので,
Postfix は Mailman の ラッププログラムを mailman の uid と gid で
実行します.
これで完了! 問題がひとつ: リストを作成したり削除すると, aliases.db は更新されますが, postfix reload を自動的に実行するわけでは ありません. これを実行するには root にならなければなりませんが, root に suid したスクリプトは安全でないからです. Postfix が aliases.db ファイルの変更とテーブルの更新に気が付くのに 1分ほどかかるだけです.