Mountain Lion Server(OSX10.8)その9 Mailman の設定まとめ
Mountain Lion (OSX10.8) Server へのメーリングリストMailman のインストールと設定のまとめ。
いろいろやって、ついにできたので、この時点でまとめる。
Home / OS X Mountain Lion Mailman Mailing List に基本的に従うが、これに書いていない部分を加える。
準備;
★Xcode (この時点で 4.4) をダウンロードしXcode command line toolsをインストールしておくこと。
★Mailman をダウンロードする。この時点では2.1.15だ。
★/usr/local とその中にmailmanというdirectoryがないから作る。ここからは面倒なのでrootになって実施する。
sh-3.2# mkdir /usr/local
sh-3.2# mkdir /usr/local/mailman
★ダウンロードし解凍したmailman-2.1.15を/usr/local/mailmanへ移動する。
mailman-2.1.15をデスクトップに移して
デスクトップで
sh-3.2# cp mailman-2.1.15.tgz /usr/local/mailman/mailman-2.1.15.tgz
としてコピーし、/usr/local/mailmanに移動し
sh-3.2# tar zxvf mailman-2.1.15.tgz
で解凍した。
/usr/local/mailman/mailman-2.1.15ができる。
/usr/local/mailman で
sh-3.2#chgrp mailman .
sh-3.2#chmod a+rx,g+ws .
を実行しておく。
実行する前
sh-3.2# ls -al
total 16544
drwxrwsr-x 4 root _mailman 136 8 17 13:38 .
drwxr-xr-x 3 root wheel 102 8 16 09:31 ..
drwxr-xr-x 32 root _mailman 1088 8 17 13:38 mailman-2.1.15
-rw-r–r–@ 1 root _mailman 8468107 8 17 13:37 mailman-2.1.15.tgz
実行したあと
sh-3.2# ls -al
total 16544
drwxrwsr-x 4 root _mailman 136 8 17 13:38 .
drwxr-xr-x 3 root wheel 102 8 16 09:31 ..
drwxr-xr-x 32 root _mailman 1088 8 17 13:38 mailman-2.1.15
-rw-r–r–@ 1 root _mailman 8468107 8 17 13:37 mailman-2.1.15.tgz
なんも変化していないから、やらなくてもいいかも。
★インストールする。
/usr/local/mailman/mailman-2.1.15のdirectoryで
sh-3.2# ./configure
とするとなんやら出てくるが終わったら、さらに
sh-3.2# make install
とするとさらにセットアップの過程が出てくる。
0x0 から 0x2010ff0 へアップグレード
古いソースファイルを削除中
リストがありません == 何も実行せずに終了します
多分、いいんだろう。
usr/local/mailman
にもどってパーミッションのチェックを行う。
sh-3.2# bin/check_perms -f
警告: 限定公開保存書庫ディレクトリが other-executable (o+x) に
なっています. あなたのシステムのシェルユーザがこの保存書庫
を読むことができます. インストールマニュアルには, これを
どうしたら修正できるか書いてありますので, 参考にしてください.
問題があります: 75
修正するには -f オプションをつけて _mailman か root の権限で実行してください
で再度 実施する。
sh-3.2# bin/check_perms -f
警告: 限定公開保存書庫ディレクトリが other-executable (o+x) に
なっています. あなたのシステムのシェルユーザがこの保存書庫
を読むことができます. インストールマニュアルには, これを
どうしたら修正できるか書いてありますので, 参考にしてください.
問題ありません
ということでインストールはおしまい。
sh-3.2# ls -al
total 16544
drwxrwsr-x 22 root _mailman 748 8 17 13:45 .
drwxr-xr-x 3 root wheel 102 8 16 09:31 ..
drwxrwsr-x 72 root _mailman 2448 8 17 13:45 Mailman
drwxrwsr-x 4 root _mailman 136 8 17 13:45 archives
drwxrwsr-x 41 root _mailman 1394 8 17 13:45 bin
drwxrwsr-x 13 root _mailman 442 8 17 13:45 cgi-bin
drwxrwsr-x 12 root _mailman 408 8 17 13:45 cron
drwxrwsr-x 4 root _mailman 136 8 17 13:45 data
drwxrwsr-x 9 root _mailman 306 8 17 13:45 icons
drwxrwsr-x 2 root _mailman 68 8 17 13:45 lists
drwxrwsr-x 2 root _mailman 68 8 17 13:45 locks
drwxrwsr-x 2 root _mailman 68 8 17 13:45 logs
drwxrwsr-x 3 root _mailman 102 8 17 13:45 mail
drwxrwsr-x 36 root _mailman 1224 8 17 13:44 mailman-2.1.15
-rw-r–r–@ 1 root _mailman 8468107 8 17 13:37 mailman-2.1.15.tgz
drwxrwsr-x 39 root _mailman 1326 8 17 13:45 messages
drwxrwsr-x 2 root _mailman 68 8 17 13:45 pythonlib
drwxrwsr-x 2 root _mailman 68 8 17 13:45 qfiles
drwxrwsr-x 15 root _mailman 510 8 17 13:45 scripts
drwxrwsr-x 2 root _mailman 68 8 17 13:45 spam
drwxrwsr-x 40 root _mailman 1360 8 17 13:45 templates
drwxrwsr-x 19 root _mailman 646 8 17 13:45 tests
sh-3.2#
となっていた。アクセス権はよさそうだ。
★apache2 がmailman を使うために、httpd-mailman.confを作る
/private/etc/apache2/extra/ で
httpd-mailman.confというファイルを作る。
中身は
# Config file for linking the mailman mailing list manager to MacOSX Server Web Server.
#
ScriptAlias /mailman/ “/usr/local/mailman/cgi-bin/”
Alias /pipermail/ “/usr/local/mailman/archives/public/”
Alias /icons/ “/usr/local/mailman/icons/”
Options FollowSymLinks MultiViews Indexes
AllowOverride None
Order allow,deny
Allow from all
だ。
★上のファイルをapache2 が読むことを指定するため、httpd_server_app.confに加筆する
/Library/Server/Web/Config/apache2 に行って
httpd_server_app.confのバックアップを作って
sh-3.2#cp httpd_server_app.conf httpd_server_app.conf,20120819
おいて、書き換える。
一番下のほうに
# Secure (SSL/TLS) connections
というコメント部分があるから、この直前に
# Mailman config files
Include /private/etc/apache2/extra/httpd-mailman.conf
の2行を書き加える。
★Postfixをメーラーとして指定する
/usr/local/mailman/Mailman
内のmm_cfg.py を
sh-3.2#cp mm_cfg.py mm_cfg.py,20120819
としてコピーしておいて、
mm_cfg.py の一番下に
MTA = ‘Postfix’
を書き加えた。
★aliases を作る。
/usr/local/mailman で
sh-3.2#bin/genaliases
sh-3.2#chown mailman:mailman data/aliases*
sh-3.2#chmod g+w data/aliases*
を実行する。
/usr/local/mailman/data
にaliases とaliase.db
が作成される。上のコマンドだとaliases と daliases.db のオーナーはmailman になるはずだが、最終的にできたのを見ると、
-rw-rw—- 1 root _mailman 1088 8 31 17:51 aliases
-rw-rw—- 1 _mailman _mailman 16384 8 31 17:51 aliases.db
となっている。試行錯誤のとき、ここに書いた順番でやらなかったからか?owner の mailman と _mailman に違いが分かっていない。オーナー、グループともmailman (_mailman)にする。パーミッションは両方とも 660 だな
★Postfix がmailmanを使うために。
/Library/Server/Mail/Config/postfixでmain.cfに加筆する。
main.cfはmain.cf,20100819 とコピーしておいた。
main.cf の一番下に
owner_request_special = no
alias_maps = hash:/etc/aliases,hash:/usr/local/mailman/data/aliases
の2行を書き加える。
unknown_local_recipient_reject_code = 550 はすでに記述されていた。
hash:/etc/aliases は使わない?のでいらないのかも。
参考にしたページではrecipient_delimiter = +も加えることになっていたが、すでにあった。
★Mailmanのパスワードの設定
sh-3.2#/usr/local/mailman/bin/mmsitepass xxxxxx
と実行すると パスワードを変更しました. と返ってきた。
★新しいメーリングリストを作る。
/usr/local/mailman で
sh-sh-3.2# bin/newlist example
リスト管理者のメールアドレスを入力してください: hoge@example.com
example の初期パスワード:
Enter を押して example の管理者にメール通知する…
mailman をスタートさせたら、mailmanというリストを作れといってくるので作った。
sh-3.2# bin/mailmanctl start
サイトリスト名がありません: mailman
sh-3.2# bin/newlist mailman
リスト管理者のメールアドレスを入力してください: hoge@example.com
mailman の初期パスワード:
Enter を押して mailman の管理者にメール通知する…
sh-3.2# bin/mailmanctl start
Mailman のマスター qrunner を起動します
sh-3.2#
で多分いいんだろう。mailman というリストが必要らしい。
[追記] 2013.4.5
/usr/local/mailman/dataで確認するとaliases.dbのパーミッションがおかしい。ちゃんと660にしたはずだが…
-rw-rw—- 1 _mailman _mailman 35613 4 5 08:56 aliases
-rw-r—– 1 _mailman _mailman 49152 12 26 15:43 aliases.db
# chmod g+w aliases.db とする。
-rw-rw—- 1 _mailman _mailman 35613 4 5 08:56 aliases
-rw-rw—- 1 _mailman _mailman 49152 12 26 15:43 aliases.db
そんで
sh-3.2# newaliases
を実行する。
★サーバ起動時にmailmanを起動させる
サーバ起動時にmailmanが起動するようにLaunchDaemons にファイルを加えておく。
/System/Library/LaunchDaemons に行って
org.list.mailmanctl.plist を作り、中身は
<!–?xml version=”1.0″ encoding=”UTF-8″?–>
Debug Disabled
Label
org.list.mailmanctl
Program
/usr/local/mailman/bin/mailmanctl
ProgramArguments
mailmanctl
-s
start
KeepAlive
RunAtLoadAbandonProcessGroup
と書く。おしまい。
http://[ドメイン名or ip address]/mailman/admin にアクセスして新しいリストを作れることを確認し、複数のメールアドレスを登録し、メールを送付できたらおしまい。
サーバを再起動してmailmanが起動していることを確認した。
★昔のサーバにあるリストのコピー・ペースト
/list
/archives
の2つのdirectoryをコピーし、新規のサーバにあるものと入れ替える。
しかし、このままでは http://[ドメイン名]/mailman/admin/ でメーリングリストの一覧がみえない。
/usr/local/mailman で
bin/withlist -l -r fix_url [メーリングリスト名]
を実行するとそのリストが一覧にでてくる。すべてのリストについて実施する必要がある。
これが、わからなくて悩んだ。
★運用につていの説明は、ここに詳しく書いてある。
メーリングリスト管理メモ