ブログ

CentOSにMailmanのインストール

2013年2月18日 20:17 | シスキュー技術部 | | 3,790 views
タグ: , , , , ,

このエントリーをはてなブックマークに追加
はてなブックマーク - CentOSにMailmanのインストール
reddit にシェア
Pocket
LINEで送る

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の管理画面からも設定できる部分ですが、同じような性格のメーリングリストを複数作成する際は、ここに記述しておくと便利です。

maxmessage

このような設定があるとすると、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の設定項目はかなりいろいろありますので、最適な設定を探してみてください。