====== MailMan ======
====== 概要 ======
GNU/MailManはメーリングリストの運営と管理を行うためのツールである。
Postfixとの親和性に優れ、比較的簡単に導入することができる。
特に、メーリングリストを新規に作成した際に、FMLなどでは必要であった、aliasesへの登録を自動で行ってくれる点は、運用上、非常に大きなポイントである。
また、管理をブラウザ経由で行うことができるため、管理・運用の敷居が低い。
日本語化もされており、この点も、運用する上でのメリットである。
====== 導入 ======
パッケージなどがあればそれを利用するのが簡単であろう。
とはいえ、スクラッチからビルドする場合でも、それほど難しくはない。
詳細は[[https://docs.python.jp/contrib/mailman/mailmaninstall.html|日本語インストールガイド]]を参照されたい。
ここでは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.conf((設定ファイルの置き場所は、自身のサーバの設定に従うこと。)) を以下の内容で作成する。
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
====== 運用 ======
===== 管理画面へのアクセス =====
管理は基本的にはブラウザ経由で行う。((コマンドラインから行うこともできる。))
http:///mailman/admin
管理画面の言語は、mm_cfg.py のDEFAULT_SERVER_LANGUAGEに従う。
[[start]]