CentOSにMailmanのインストール
CentOSにMailmanのインストール
メーリングリストサーバーをVPSに構築した際のメモです。 オープンソースのメーリングリストサーバーMailmanを利用します。 ApacheとPostfixが稼働している状態から開始します。 yumでインストールできるパッケージがMailmanの2.1.13でしたので、 http://docs.python.jp/contrib/mailman/releases.html こちらから最新版を取得します。 こちらでダウンロードできるバージョンは細かい日本語向けカスタマイズが施されています。 [bash] yum -y install python-devel [/bash] pythonのインストールを行います。 [bash] groupadd mailman useradd -c "GNU Mailman" -s /sbin/nologin -M -g mailman mailman mkdir /usr/local/mailman chown mailman. /usr/local/mailman chmod a+rx,g+ws /usr/local/mailman [/bash] Mailmanのグループとユーザーを作ります。 [bash] wget http://docs.python.jp/contrib/mailman/_static/mailman-2.1.14+j7.tgz tar zxvf mailman-2.1.14+j7.tgz mv mailman-2.1.14+j7 /tmp/ chown -R mailman. /tmp/mailman-2.1.14+j7.tgz [/bash] Mailmanの最新バージョン2.1.14+j7をダウンロードし解凍、/tmp/以下に移動させます。 [bash] cd /tmp/mailman-2.1.14+j7 su mailman -s "/bin/bash" -c "./configure --with-cgi-gid=apache" su mailman -s "/bin/bash" -c "make" && make install [/bash] makeを実行し、インストールフォルダにインストールします。 [bash] cd /usr/local/mailman/ ./bin/check_perms -f ./bin/check_perms [/bash] アクセス権チェックを行います。-fオプションで自動的に修正してくれます。 [bash] rm -rf /tmp/mailman-2.1.14+j7/ [/bash] ソースを削除します。 [bash] vi /usr/local/mailman/Mailman/mm_cfg.py [/bash] ここでMailmanのコンフィグファイルを設定します。 [text] DEFAULT_URL_HOST = 'hostname' DEFAULT_EMAIL_HOST = 'hostname' add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) MTA = 'Postfix' DEFAULT_SERVER_LANGUAGE = 'ja' DEFAULT_URL_PATTERN = 'http://%s/mailman/' [/text] URLホスト名には、正確なURLを記述してください。ここが実際アクセスするものと違う場合、管理画面でエラーになります。 EMAIL_HOSTにはメールサーバーのドメイン名を入力してください。 ここに入力した文字列が、メーリングリストへの投稿先となります。 メーリングリスト名@DEFAULT_EMAIL_HOSTが投稿先となります。 mm_cfg.pyには新たにメーリングリストを作成する際のデフォルト値をいろいろと設定することができます。 GUIの管理画面からも設定できる部分ですが、同じような性格のメーリングリストを複数作成する際は、ここに記述しておくと便利です。 このような設定があるとすると、mm_cfg.pyには [text] DEFAULT_MAX_MESSAGE_SIZE=0 [/text] のように記述しておくと、新規に作られるメーリングリストにあらかじめ適用されます。 [text] /usr/local/mailman/bin/mmsitepass password [/text] Mailman全体のパスワードを設定します。 [bash] crontab -u mailman /usr/local/mailman/cron/crontab.in [/bash] MailmanのCronの設定を行います。 [bash] /usr/local/mailman/bin/genaliases chown mailman. /usr/local/mailman/data/aliases* chmod g+w /usr/local/mailman/data/aliases* [/bash] Mailmanのエイリアス設定を行います。 メーリングリストを作成する度に、メーリングリスト用に新たな複数のエイリアスが作成されます。 入退会用、コマンド送信用、メーリングリスト送信用などです。 [bash] vi /etc/postfix/main.cf [/bash] main.cfの中の以下に、mailmanのaliasesを設定します。 [text] alias_maps = hash:/etc/aliases, hash:/usr/local/mailman/data/aliases [/text] これをpostfixに反映させます。 [bash] service postfix reload [/bash] Apacheの設定ファイルをMailman用に作成します。 [bash] vi /etc/httpd/conf.d/mailman.conf [/bash] [text] ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/ <Directory /usr/local/mailman/cgi-bin/> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> Alias /pipermail/ /usr/local/mailman/archives/public/ <Directory /usr/local/mailman/archives/public/> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> [/text] これを保存し、 [bash] service httpd checkconfig service httpd graceful [/bash] apacheをリスタートします。 [bash] /usr/local/mailman/bin/newlist mailman [/bash] 管理用メーリングリストを作成します。 管理者メールアドレスと、mailmanパスワード、を入力し、エンターを入力すると、作成が完了します。 [bash] /usr/local/mailman/bin/config_list -i /usr/local/mailman/data/sitelist.cfg mailman [/bash] メーリングリストの初期設定を行います。 [bash] cp /usr/local/mailman/scripts/mailman /etc/rc.d/init.d/ /etc/init.d/mailman start chkconfig --add mailman chkconfig mailman on [/bash] 起動スクリプトを設定して、自動で起動させます。 ここで http://hostname/mailman/admin にアクセスし、Mailmanの管理画面が表示されれば、インストール完了です。 アイコンが表示されていなかったので、アイコンをwww配下のiconsディレクトリにコピーします。 [bash] cp /usr/local/mailman/icons/* /var/www/icons/ [/bash] これでアイコンも正常に表示されました。 設定次第で、双方向のメーリングリストや、メールマガジン風など様々な設定が可能で、つかいやすい印象です。 ユーザーも管理画面から様々な操作ができますが、今回必要なメーリングリストは閉じたものですので、認証をかけて管理画面にアクセスできないようにしました。 Mailmanの設定項目はかなりいろいろありますので、最適な設定を探してみてください。