目次

MailMan

概要

GNU/MailManはメーリングリストの運営と管理を行うためのツールである。 Postfixとの親和性に優れ、比較的簡単に導入することができる。 特に、メーリングリストを新規に作成した際に、FMLなどでは必要であった、aliasesへの登録を自動で行ってくれる点は、運用上、非常に大きなポイントである。 また、管理をブラウザ経由で行うことができるため、管理・運用の敷居が低い。 日本語化もされており、この点も、運用する上でのメリットである。

導入

パッケージなどがあればそれを利用するのが簡単であろう。 とはいえ、スクラッチからビルドする場合でも、それほど難しくはない。 詳細は日本語インストールガイドを参照されたい。

ここではPostfix、Python、Apache2が導入済みであるという前提で、以下に導入について簡単に触れる。

アカウントとグループの作成

MailManの運用は、専用のユーザとグループで行うことが推奨されている。 rootなどの管理権限の強いユーザでの運用を避ける今風のスタイルである。

以下の要領でユーザとグループとを作っておく。

# groupadd mailman
# useradd -c 'GNU MailMan' -s /bin/false -d /var/lib/mailman -m -g mailman mailman

ホームディレクトリはどこでもいいかと思うが、mailman のパッケージの導入先としても使いたいので、上記のようにするのがいいだろう。

運用のため、ホームディレクトリの権限と所有者を以下のようにしておく。

# chown -R mailman.mailman /var/lib/mailman
# chmod -R a+rx,g+ws /var/lib/mailman

dnspythonの導入

MailManはpythonを利用する関係で、dnspythonパッケージが必要となる。 パッケージがあればそれを、なければpipなどで導入する。

# apt install python-dns

または

# pip install dnspython

といった要領である。

ビルドとインストール

ビルドとインストールは、多くのアプリケーションがそうであるように、configureとmakeである。

$ tar -zxf mailman-2.1.29.tgz
$ cd mailman-2.1.29
$ ./configure --prefix=/var/lib/mailman
$ make
$ sudo make install

インストールがすんだら、インストールされているファイルやディレクトリの権限を確認し修正する。

$ cd /var/lib/mailman
$ bin/check_perms

もしここで権限に関する問題が出たら、-f をつけてcheck_permを実行しこれを修正する。

$ sudo bin/check_perms -f

この処理は、管理権限のあるユーザで行う。

設定

Postfix

Postfix に関しては、main.cfに以下の設定を行う。

owner_request_special = no
recipient_delimiter = +
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/postfix/aliases, hash:/var/lib/mailman/data/aliases

alias_mapsには既存のものに加えて hash:/var/lib/mailman/data/aliases を追記する。 これにより、管理画面から追加されたメーリングリストが自動的に配信対象となる。

Apache2

/etc/apache2/conf.d/mailman.conf1) を以下の内容で作成する。

ScriptAlias     /mailman/       /var/lib/mailman/cgi-bin/
Alias           /pipermail/     /var/lib/mailman/archives/public/

MailMan

まず、画像ファイルを適切な場所にコピーする。 例えば以下のようにする。

$ cp icons/*.{jpg,png} /var/www/icons

/var/www/icons が /icons という Locationにマップされているとする。 以下の内容を、MailMan/mm_cfg.py に記述する。

IMAGE_LOGOS = '/icons/'
MTA = 'Postfix'

DEFAULT_EMAIL_HOST = 'メールサーバー'
DEFAULT_URL_HOST = 'ウェブサービスのURI'
DEFAULT_URL_PATTERN = 'https://%s/mailman/'

add_virtualhost(DEFAULT_URL_HOST, DEFAULT_URL_HOST)

DEFAULT_SERVER_LANGUAGE = 'ja'

サービスの自動起動

起動用のスクリプトをコピーして、登録する。

# cp scripts/mailman /etc/init.d
# chkconfig --add mailman
# service mailman start

cronの登録

MailManはダイジェストの送信などをcronで行うので、この登録を行う。

# crontab -u mailman cron/crontab.in

管理パスワードの作成

管理用パスワードには、サイトパスワードとリスト作成用パスワードの二種類がある。 リスト作成用パスワードはMLを作成する権限のみがあり、サイトパスワードはこれを包含しているため、サイトパスワードだけを作成しても運用上問題はない。

複数人で管理を行い、MLの作成権限のみを分与したい場合に、リスト作成用パスワードを作成すればいいだろう。

パスワードは、それぞれ以下のコマンドで作成する。

サイトパスワード:

$ bin/mmsitepass

リスト作成用パスワード:

$ bin/mmsitepass -c

運用

管理画面へのアクセス

管理は基本的にはブラウザ経由で行う。2)

http://<mm_cfg.pyに設定したURI>/mailman/admin

管理画面の言語は、mm_cfg.py のDEFAULT_SERVER_LANGUAGEに従う。

start

1)
設定ファイルの置き場所は、自身のサーバの設定に従うこと。
2)
コマンドラインから行うこともできる。