====== 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]]