manekineko倉金家ホームページ

趣味の部屋/サーバー構築メモ

14-9.Mailman

2007年8月22日
メーリングリストはグループや会などの連絡用に大変便利です。
メーリングリストサーバーとしてMailmanを導入します。

以前にMailmanをインストールしたときたいへん面倒だったのを覚えています。
quickmlというメーリングリストサーバーもありますが、手軽すぎるのも心配です。
...で以前と同じくMailmanを入れることにしました。

http://mm.tkikuchi.net/ を参考にMailmanインストールを開始します。

インストール前準備
インストールにあたっては
http://mm.tkikuchi.net/mailman-install/index.html
を参考に、ほとんどそのとおり。

pythonが入っていなければインストールします。
今回はOSをフルインストールしたのでpython-2.4.4-0vl1が入っています。

mailmanのユーザとグループ、ついでにホームディレクトリを作成します。
前のサーバーに合わせてuid=112, gid=112、/home/mailmanとしました。

インストールディレクトリを作成します。
/usr/local/mailmanをつくり、グループIDをmailmanにしsetgidビットをセットしておきます。(インストールマニュアルに書いてあるとおり。)
#mkdir /usr/local/mailman
#cd /usr/local/mailman
#chgrp mailman .
#chmod a+rx,g+ws .

そして今回は現行サーバーのMailman Mailing listのデータを引き継がなくてはならないので、現行サーバーの/usr/local/mailmanの中身をそっくり新しく作った/usr/local/mailmanにバックアップコピーしておきます。

インストール
http://mm.tkikuchi.net/dounload.html より「日本語 Mailman」をいただきました。versionは2.1.7でした。
最新版は2.1.9とのことですが、日本語版ではないらしいのでやめておきます。

ダウンロードしたファイルを/home/mailmanに置いてユーザmailmanで展開。
$tar zxvf mailman.tar.gz
mailman-2.1.7というフォルダができます。
$cd mailman-2.1.7
例によって真っ先にREADMEを読みます。...英語でよくわからなかった。

configureします。
$./configure --with-cgi-gid=apache --with-mail-gid=mailman
すぐに終ってpython-develがないよとエラー表示が出ます。...入れてなかった!
python-develをインストールします。
再度configureすると今度はcheckingやcreatingメッセージと最後にconfiguration completed at Mon Aug ... 2007と出て完了。

makeします。
$make
待つこと2、3分、make完了。

インストールします。rootになる必要はありません。
$make install
/usr/local/mailmanを覗いてみるといっぱいフォルダができていました。

インストールのチェックをします。
$cd /usr/local/mailman
$bin/check_perms
....: ディレクトリのパーミッションは02775でなければいけません
  というメッセージがいっぱい出ます。
(自分でディレクトリを作ったくせに何だ??)
修正!
$bin/check_perms -f
修正してるようです。
再度 $bin/check_perms をやると今度はWarningがひとつだけ。
Private archive directory is other-executable (o+x). ...
/usr/local/mailman/archives/privateのパーミッションをo-xに修正。
$chmod o-x archives/private
再度 $bin/check_perms で今度は問題ありませんとだけ出て完璧。

以上でインストールは終わり。

Apacheの設定
Web上からMailmanのWebインタフェースが使えるようにWEBサーバーApache2を設定します。

/usr/local/mailman/iconsの中のファイルをapacheのhttpd.confに定義されたAlias /icons/ のフォルダ(/var/www/icons かな?)にコピーします。

以下をhttpd.confに追加します。
#mailmanのための設定
ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"
<Directory /usr/local/mailman/cgi-bin/>
  AllowOverride None
  # cgiを許す
  Options +ExecCGI
  Order allow,deny
  Allow from all
</Directory>
Alias /pipermail/ "/usr/local/mailman/archives/public/"
<Directory /usr/local/mailman/archives/public/>
  AllowOverride None
  Options FollowSymLinks Indexes
  Order allow,deny
  Allow from all
</Directory>


postfixの設定
postfix の設定ファイル /rtc/postfix/main.cfの一部を変更します

#mailmanのaliasesデータベースをalias_mapsに追加
alias_maps = hash:/etc/postfix/aliases,  hash:/user/local/mailman/data/aliases
#バーチャルドメイン配送、転送の指定
virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf,
 hash:/usr/local/mailman/data/virtual-mailman
#luser_relay = ... (無効化)

#mailmanを使うのに必要な設定を最後に追加
owner_request_special = no

以下はこのように設定してあるはずだがいちおう確認
recipient_delimiter = +
unknown_local_recipient_reject_code = 550
mydestination = $myhostname, localhost.$mydomain
myorigin = $myhostname
append_dot_mydomain = no

Mailmanの設定
http://fedorasrv.com/postfix-mailman.shtml
http://hatuka.nezumi.nu/repos/mailman-Defaults.py.in-ja/MAIN/Defaults.py.in?view=markup&pathrev=18
がたいへん参考になります。

まずMailmanの設定ファイル /usr/local/mailman/Mailman/mm_cfg.py を編集します。

1行目と2行目を以下のようにしておきます。
# -*- python -*-
# -*- coding:euc-jp -*-
これによりコメントに日本語が使えます。

#サーバー環境設定
DEFAULT_SERVER_LANGUAGE = 'ja'
MTA = 'Postfix'

#メーリングリストに使うドメイン
POSTFIX_STYLE_VIRTUAL_DOMAINS = {'iroribata.net', '....'}

#ホスト名の設定
DEFAULT_URL_HOST = 'iroribata.net'
DEFAULT_EMAIL_HOST = 'mail.iroribata.net'
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

その他、/usr/local/mailman/Mailman/Defaults.pyの中から、好みに応じて変更する部分をこの mm_cfg.pyに書き加えます。

#メーリングリスト一覧を非公開にする
DEFAULT_LIST_ADVERTISED = No
など

起動設定
#cd /usr/local/mailman
#cp scripts/mailman /etc/init.d/mailman
#chkconfig --add mailman

cron設定
Mailmanディフォルトのまま特に変更はしません。
$su -
#cd /usr/local/mailman/cron
#crontab -u mailman crontab.in
crontabファイルが /var/spool/cronに作成されます。

サイトパスワード登録
$su -
#cd /usr/local/mailman
#bin/mmsitepass (パスワード)
でサイト管理者のパスワードを登録。

メーリングリストの作成
http://(ドメイン)/mailman/create から上記のサイトパスワードを使って新しいメーリングリストをつくります。

以上でメーリングリストサーバー完了。