メーリングリストサーバmailmanの構築

【前提条件】
apacheがインストール済み
postfix,sendmail,qmail等のsmtpがインストール済み
Pythonがインストール済み
Python-develがインストール済み
gccが2.8.1以降

※selinuxが動いているとmailmanのCGIが動きません。
 SElinuxの設定をする必要がありますが今のところ
 面倒なのでdisableにしています。

今回はpostfixを使用しています。

mailmanはmailman-2.1.14+j7.tgzを使用します。
事前に公式サイトからダウンロードして/usr/local/src/に
配置します。

グループ及びユーザー作成
# groupadd mailman
# useradd -c “GNU Mailman” -s /sbin/nologin -g mailman mailman

デフォルトでインストールディレクトリが/usr/local/mailmanなので
フォルダを作り権限を設定します。
# mkdir /usr/local/mailman
# usermod -d /usr/local/mailman mailman
# chown mailman. /usr/local/mailman
# chmod a+rx,g+ws /usr/local/mailman

mailmanをダウンロードしたディレクトリに移動して解凍します。
また所有者をmailmanユーザーにします。

# cd /usr/local/src/
# tar zxvf mailman-2.1.14+j7.tgz
# chown -R mailman. mailman-2.1.14+j7

解凍したディレクトリへ移動しインストールを実施します。
※注意点 日本語はEUCになります。linux環境でUTF-8にしている場合は
文字化けするので注意すること

# cd 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

インストール終了後、インストールディレクトリに移動して
パーミッションの補正スクリプトcheck_permsを実行します。

# cd /usr/local/mailman
# bin/check_perms -f

警告: 限定公開保存書庫ディレクトリが other-executable (o+x) に
なっています. あなたのシステムのシェルユーザがこの保存書庫
を読むことができます. インストールマニュアルには, これを
どうしたら修正できるか書いてありますので, 参考にしてください.

問題ありません

問題ありませんとなるまで何度か実行します。

●WEBサーバの設定
CGIを使うのでCGIの許可設定が必要です。
今回はmailman用にコンフィグファイルを別途作ります。

# vi /etc/httpd/conf.d/mailman.conf
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>

mailman用ロゴファイルを所定のディレクトリーにコピーします。
# cp /usr/local/mailman/icons/* /var/www/icons/

ここまで終わったらWEBサーバの再起動
# /etc/init.d/httpd restart

●メールサーバの設定(postfix編)

postfixのmain.cfに下記の設定をします。
デフォルトではoffになっていると思うのでコメントアウトを外すか
新規で記述して下さい。

# vi /etc/postfix/main.cf

alias_maps = hash:/etc/postfix/aliases, hash:/usr/local/mailman/data/aliases

owner_request_special = no
recipient_delimiter = +
unknown_local_recipient_reject_code = 550

●mailmanの設定
mailmanの設定ファイルを編集します。

# vi /usr/local/mailman/Mailman/mm_cfg.py

##################################################
# Put YOUR site-specific settings below this line.

## mailman setup ###
MTA = ‘Postfix’
DEFAULT_URL_HOST = ‘testserver.ddo.jp’
DEFAULT_EMAIL_HOST = ‘testserver.ddo.jp’
DEFAULT_URL_PATTERN = ‘http://%s/mailman/’
DEFAULT_SERVER_LANGUAGE = ‘ja’

PostfixのPは大文字です。間違えると次がエラーになってしまいます。

bin/genaliases スクリプトを実行して aliases ファイルを初期化し、
メーリングリストサーバ管理パスワード設定します。

# /usr/local/mailman/bin/genaliases パスワード
パスワードを変更しました。

data/aliases と data/aliases.db の所有者とグループををmailmanに変更します。
またグループ書き込み許可も付けます。

# chown mailman:mailman data/aliases*
# chmod g+w data/aliases*

サイトリスト登録
# bin/newlist mailman
リスト管理者のメールアドレスを入力してください: webmaster@testserver.ddo.jp
mailman の初期パスワード:
Enter を押して mailman の管理者にメール通知する…

# bin/config_list -i data/sitelist.cfg mailman
標準でない値を修復: personalize

mailmanのcronを設定します。
# cd /usr/local/mailman/cron
# crontab -u mailman crontab.in
確認
# crontab -l -u mailman

起動します。
# /usr/local/mailman/bin/mailmanctl start

起動状況を確認

# ps aux | grep mailman
mailman 5166 0.0 1.0 14716 5444 ? Ss 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/mailmanctl star
mailman 5167 0.9 1.4 14472 7336 ? S 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/qrunner –runner=ArchRunner:0:1 -s
mailman 5168 0.8 1.4 14472 7352 ? S 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/qrunner –runner=BounceRunner:0:1 -s
mailman 5169 0.9 1.4 14476 7340 ? S 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/qrunner –runner=CommandRunner:0:1 -s
mailman 5170 0.8 1.4 14472 7300 ? S 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/qrunner –runner=IncomingRunner:0:1 -s
mailman 5171 0.9 1.4 14460 7384 ? S 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/qrunner –runner=NewsRunner:0:1 -s
mailman 5172 1.0 1.4 14860 7680 ? S 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/qrunner –runner=OutgoingRunner:0:1 -s
mailman 5173 0.9 1.4 14472 7472 ? S 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/qrunner –runner=VirginRunner:0:1 -s
mailman 5174 0.9 1.4 14472 7364 ? S 11:14 0:00 /usr/bin/python /usr/local/mailman/bin/qrunner –runner=RetryRunner:0:1 -s
root 5176 0.0 0.1 5108 788 pts/0 R+ 11:14 0:00 grep mailman

自動起動を登録します。
起動スクリプトをコピー
# cp /usr/local/mailman/scripts/mailman /etc/rc.d/init.d/
スクリプトが動く事を確認
# /etc/init.d/mailman stop
# /etc/init.d/mailman start
問題かければchkconfigに登録
# chkconfig –add mailman
# chkconfig mailman on
# chkconfig –list | grep mailman
mailman 0:off 1:off 2:on 3:on 4:on 5:on 6:off

●mailmanの確認
管理画面は
http://サーバ名/mailman/admin

リストを作ってみます。
http://サーバ名/mailman/create
「リストの名前」⇒test

「リスト管理者アドレスの初期設定」⇒リスト管理者メールアドレス

「初期パスワードを自動生成しますか?」⇒はい

「リスト作成者の認証パスワード」⇒メーリングリストサーバー管理パスワード

「リストを作成する」ボタン押下

管理画面でリストができていればOKです。

コメントする