linux server |
|
||
|
Copyright sleepingbird, 1993- All rights reserved. |
|||
Linux Server |
# apt-get install python-develテストの結果、2.3.2 では日本語化部分に不具合が発生し、Mailman のスクリプトの一部が異常終了することが判明した。具体的には、月に1度自動配送される「メーリングリスト会員情報備忘通知」スクリプトにおいて、`unknown encoding: EUC-JP' を吐いて転けた。(後述の日本語コーデックを適用してもダメ)
$ wget http://www.python.org/ftp/python/2.2.3/Python-2.2.3.tgzデフォルトで /usr/local/bin/ にインストールされる。
$ tar xvzf Python-2.2.3.tgz
$ cd Python-2.2.3
$ ./configure
$ su
# make install
# wget http://www.python.jp/Zope/download/JapaneseCodecs/JapaneseCodecs-1.4.11.tar.gz
# tar zxvf JapaneseCodecs-1.4.11.tar.gz
# cd JapaneseCodecs-1.4.11
# /usr/local/bin/python2.2 setup.py install
$ suユーザー mailman で作業を続ける。
# groupadd mailman
# useradd -g mailman mailman
# mkdir /usr/local/mailman
# chown mailman:mailman /usr/local/mailman
# chmod 2775 /usr/local/mailman
# su - mailmanHTTPD と MTA の gid 、python のインストール位置を指定して configure する。
$ wget http://mm.tkikuchi.net/mailman-2.1.6.tgz
$ tar xvzf mailman-2.1.6.tgz
$ cd mailman-2.1.6インストールする。デフォルトでは /usr/local/mailman にインストールされる。
$ ./configure --with-cgi-gid=apache --with-mail-gid=nobody --with-python=/usr/local/bin/python2.2
$ make install
# vi /etc/httpd/conf/httpd.conf
#mailman
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/
<Directory /usr/local/mailman/cgi-bin/>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
# /etc/rc.d/init.d/httpd restart
ここで接続確認をする。http://www.qcp.jp/mailman/listinfo にブラウザでアクセスし、下のような表示されれば
OK。なお、この段階では英語表記のままである。$ bin/newlist mailman リスト管理者のメールアドレスを入力してください: mailman の初期パスワード: あなたのメーリングリスト作成を完了するには, /etc/aliases(または同等の ファイルに), 次の行を付け加えてやらなければなりません. また, 多分, `newaliases' プログラムを実行しなければならないでしょう. ## mailman mailing list mailman: "|/usr/local/mailman/mail/mailman post mailman" mailman-admin: "|/usr/local/mailman/mail/mailman admin mailman" mailman-bounces: "|/usr/local/mailman/mail/mailman bounces mailman" mailman-confirm: "|/usr/local/mailman/mail/mailman confirm mailman" mailman-join: "|/usr/local/mailman/mail/mailman join mailman" mailman-leave: "|/usr/local/mailman/mail/mailman leave mailman" mailman-owner: "|/usr/local/mailman/mail/mailman owner mailman" mailman-request: "|/usr/local/mailman/mail/mailman request mailman" mailman-subscribe: "|/usr/local/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe mailman"表示された aliases を copy & paste で /etc/aliases 書き加え、newaliases する。
$ suテストとしてメイリングリスト mailman にメールを送ってみる。
# vi /etc/aliases
# newaliases
# mail mailman Subject: test test . Cc: # mailここまでの設定に問題がなければ何も送られてこない。
<mailman@sleepingbird.net>: Command died with status 2:
"/usr/local/mailman/mail/mailman post mailman". Command output: Group
mismatch error. Mailman expected the mail wrapper script to be executed as
group "postfix", but the system's mail server executed the mail script as
group "nobody". Try tweaking the mail server to run the script as group
"postfix", or re-run configure, providing the command line option
`--with-mail-gid=nobody'.
mail-gid を間違って configure したようなので、指示に従って再度やり直し、メールが送られてこなくなるまで繰り返す。$ su保存書庫ディレクトリの Alias 設定と、ディレクトリ属性の設定を行い、apache を再起動する。
# cp /usr/local/mailman/icons/*.{jpg,png} /home/httpd/icons/
# vi /etc/httpd/conf/httpd.conf
Alias /pipermail/ /usr/local/mailman/archives/public/
<Directory /usr/local/mailman/archives/public/>
AllowOverride None
Options FollowSymLinks Indexes
Order deny,allow
Allow from all
</Directory>
# /etc/rc.d/init.d/httpd restart
cron を設定する。なお、crontab.in の内容は一読してどんな処理がされているか位は確認しておく。# su - mailmanqrunner daemon を起動する。
$ cd /usr/local/mailman/cron
$ crontab crontab.in
$ cd /usr/local/mailmanここまで、設定が正しければ、次の二つのメールが管理者宛に送信されてくる。
$ bin/mailmanctl start
Mailman のマスター qrunner を起動します
Subject: Your new mailing list: mailmanMailman の使用言語のデフォルトを日本語にする。
メーリングリスト mailman を作成したときの管理者宛通知
Subject: Your message to Mailman awaits moderator approval
メーリングリスト mailman にテストメールを送信したときの保留通知
$ vi /usr/local/mailman/Mailman/mm_cfg.pyここで再度 http://www.sleepingbird.net/mailman/listinfo にブラウザでアクセスすれば、日本語のページが確認できる。
DEFAULT_SERVER_LANGUAGE = 'ja'
$ bin/mailmanctl restart
Mailman のマスター qrunner を再起動します
$ bin/rmlist -a mailman作成した mailman メーリングリストは管理用として Mailman で定義済みなので、 cron のエラーなど Mailman 運用中の重要なメールが配信されるため、必ず入会しておく。
$ vi /usr/local/mailman/Mailman/mm_cfg.py
DEFAULT_EMAIL_HOST = 'sleepingbird.net'
DEFAULT_URL_HOST = 'www.sleepingbird.net'
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
3行追加
$ bin/mailmanctl restart
Mailman のマスター qrunner を再起動します
$ newlist mailman
管理ページからmailman メーリングリストは一般には参加を募らないので「ようこそ!」ページに表示しないようにしておく。
「プライバシー・オプション」の「送信者フィルター」サブメニューを開く
設定項目の下から二番目の「動作が定義されていない非会員からの投稿があった場合の動作」を「承認」に変更しておく。
「プライバシー・オプション」の[入会規則]最初の項目メーリングリストを作成するためのパスワードを設定しておく。以後、メーリングリストを作成するにはこのパスワードが必要となる。
「このマシンでどんなリストがあるか聞かれた時に広告しますか? 」を「いいえ」に変更する。
$ cd /usr/local/mailman新たにメーリングリストが作成された場合、サイト管理者あてに /etc/aliases に追加する項目がメールされるので、それを追加して newaliases して運用開始となる。
$ bin/mmsitepass
| コマンド | 処理概要 |
|---|---|
| bin/add_members | コマンド行から会員登録する. |
| bin/arch | リストの保存書庫を再構築する. このコマンドでメーリングリストの保存書庫を再構築します. 保存書庫内の メールを編集したり削除したときに, このコマンドを実行するとよいでしょう. |
| bin/b4b5-archfix | MM2.1b4 形式の保存書庫を修正する. |
| bin/change_pw | リストのパスワードを変更する. |
| bin/check_db | リストの設定データベースをチェックする. |
| bin/check_perms | Mailman インストールのためのパーミッションをチェックする. |
| bin/cleanarch | .mbox の過去メールファイルをきれいにする. |
| bin/clone_member | 会員アドレスのクローン作成. 会員アドレスのクローン作成とは, 元の会員アドレスと全く同じオプションとパスワードで新しい会員を登録することを意味します. |
| bin/config_list | テキストファイルの記述からリストの設定を行う. |
| bin/discard | 保留メールを破棄する. |
| bin/dumpdb | Mailman のデータベースファイルの内容を表示する. |
| bin/find_member | 会員が属するリストを検索する. |
| bin/fix_url | url 情報をサーバーに整合させる |
| bin/genaliases | Mailman の aliases を再生成する. 実際の出力は, mm_cfg.py ファイルの `MTA' 変数の値によって変わります. |
| bin/inject | Mailman の incoming キューにファイルからメールを入れる. |
| bin/list_admins | メーリングリストの管理者を表示する |
| bin/list_lists | 全てのメーリングリストを表示する. |
| bin/list_members | メーリングリストの会員全員を表示する. |
| bin/list_owners | 全部または一部のメーリングリストの管理者を表示する. |
| bin/mailmanctl | Mailman の qrunner デーモンをスタート/停止するスクリプト. |
| bin/mmsitepass | 端末から入力することで, サイトのパスワードを設定する |
| bin/newlist | 新しく会員未登録のメーリングリストを作成する. |
| bin/qrunner | ひとつ以上の qrunner を, 一度か繰り返し実行する. |
| bin/remove_members | リストから会員を削除する. |
| bin/rmlist | メーリングリストを削除する (完全に) - 注意! |
| bin/show_qfiles | Mailman の qfiles にあるメールの内容を表示する. |
| bin/sync_members | リストの会員を平文のファイルと同期させる. |
| bin/unshunt | Mailmanの翻訳をチェックする. 翻訳の中の変数とタグが原本の変数とタグに一致するかどうかを調べる. |
| bin/unshunt | メールを shunt キューから元のキューに移動する. |
| bin/update | 必要なアップグレードを行う. |
| bin/version | 使用中の Mailman バージョンはを表示する. オプションは無い. |
| bin/withlist | メーリングリストオブジェクトとやりとりするために一般的枠組み. |
owner_request_special = no/usr/local/mailman/Mailman/mm_cfg.py に次の行を追加する。
recipient_delimiter = +
unknown_local_recipient_reject_code = 550
MTA = 'Postfix'/usr/local/mailman/Mailman/Defaults.py の次の値がシステムの設定と整合しているかを確認しておく。もし、違っていたら mm_cfg.py で修正値を追加する。VineLinux3.1 では整合していた。
POSTFIX_ALIAS_CMD = '/usr/sbin/postalias'ここで、ユーザー mailman で bin/genaliases を実行すると、/usr/local/mailman/data 下に aliases と aliases.db が生成されるようになる。このファイルを POSTFIX で参照できるように /etc/postfix/main.cf を変更しておく。なお、生成されたファイルの所有者とグループが maillman であることを確認し、もし違っていたら変更しておく。また、aliases.db のパーミッションも変更する。(これは README.POSTFIX に記述がないので注意)
POSTFIX_MAP_CMD = '/usr/sbin/postmap'
# su mailman
$ cd /usr/local/mailman
$ bin/genaliases
$ ls -l data/aliases*
$ chmod g+w data/aliases.db
# vi /etc/postfix/main.cf最後に、Mailman を --with-mail-gid=mailman で configure し直す。
alias_maps = hash:/etc/postfix/aliases
↓
alias_maps = hash:/etc/postfix/aliases,hash:/usr/local/mailman/data/aliases
# /etc/rc.d/init.d/postfix reload
# su mailman問題なければ qrunner を再起動する。
$ cd /home/mailman/mailman-2.1.6b3
$ ./configure --with-cgi-gid=apache --with-mail-gid=mailman --with-python=/usr/local/bin/python2.2
$ make install
$ cd /usr/local/mailman
$ bin/check_perms -f
$ bin/mailmanctl restartこれで、新しいメーリングリストを作った時に newaliases しなくてもリストが運用できる。ただし、POSTFIX の reload 操作は必要。 cron/mailpasswds の修正も忘れないこと。
Mailman のマスター qrunner を再起動します
# cp /usr/local/mailman/scripts/mailman /etc/init.d/mailman # cd /etc/init.d # chkconfig --add mailman # chkconfig mailman on # chkconfig --list mailman mailman 0:off 1:off 2:on 3:on 4:on 5:on 6:off
OWNERS_CAN_ENABLE_PERSONALIZATION = YesVERP 配送先トラッキング
VERP_PERSONALIZED_DELIVERIES = Yes添付ファイル削除
管理ページから
「内容フィルター」の「以下の設定に従ってメールの内容によるフィルターをおこないますか?」を「はい」
「この内容(Content-Type)に合わない添付ファイルは取り除きます. このチェックを行わないようにするには,ここを空白にしておいてください. 」の右枠内に次のように入力しておく。
multipart
text/plain
管理ページから以上の設定で、送信後、自分自身で配信を承認することによって、偽装メールを防止する。また、送信用アドレスも隠蔽できる。
「会員管理」 の[会員リスト]
「その他の会員に関する操作」
「全員の発言制限(モデレーション)・ビットをセットする. (隠れ会員を含む)」を「オン」にする。
「プライバシー・オプション... 」の[送信者フィルター]で「デフォルトで, 新会員からの投稿は制限しますか?」
を「はい」にする。
「投稿があると司会承認のため直ちに保留される非会員のメールアドレス」に投稿に使うメールアドレスを入力しておく。
「一般オプション」の「メッセージの送信者を隠して, リストのアドレスに置きかえる (From, Sender と Reply-To を削除します)」を「オン」にする。
_______________________________________________post_id (通し番号) を変更する
%(real_name)s mailing list
このリストの案内ページ
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
退会・変更・配送一時停止は以下へ
%(user_optionsurl)s
$ /usr/local/bin/python2.2 -i bin/withlist sbinfo
sbinfo のリストを読み込中 (ロック解除)
変数 `m' が sbinfo の MailList インスタンスです
>>> m.Lock()
>>> m.post_id
10
>>> m.post_id = 30
>>> m.Save()
>>> ^D
>>> ^D
リストをロック解除 (保存はしてません): sbinfo
最終処理中
$
aaaaa@exsample.net (nameA) bbbbb@exsample.net (nameB) ccccc@exsample.net (nameC)
| cronpass.txt | メーリングリストが毎月自動送信する備忘通知 |
| help.txt | メーリングリストのヘルプ |
| subscribeack.txt | メーリングリストへようこそ! |
/usr/local/mailman/messages/ja/LC_MESSAGES/mailman.po(毎月送信される備忘通知は 11,294 行目辺りに記述されている。)
# su - mailman $ cd /usr/local/mailman/messages/ja/LC_MESSAGES $ vi mailman.po変更後、
$ ../../../bin/msgfmt.py -o mailman.mo mailman.poで変更を反映させ、mailman を再起動する。
$ ../../../bin/mailmanctl restart
移行元なお、templates ディレクトリ内のテキスト類も上書きされているので確認する。
$ su -
# cd /usr/local
# tar cvf mailman.tar mailman
移行先
$ su -
# /etc/init.d/mailman stop
# mv ./mailman.tar /usr/local
# tar xfv mailman.tar
# su mailman
$ cd /home/mailman/mailman-2.1.6b3
$ ./configure --with-cgi-gid=apache --with-mail-gid=mailman --with-python=/usr/local/bin/python2.2
$ make install
$ cd /usr/local/mailman
$ bin/check_perms -f
$ exit
# cd /usr/local/mailman
# ./bin/withlist -l -r fix_url リスト名 -v
# su mailman
$ vi /usr/local/mailman//Mailman/mm_cfg.py
$ su
# /etc/init.d/mailman start
# su - mailman問題なければ qrunner を再起動する。
$ wget http://mm.tkikuchi.net/mailman-2.1.8.tgz
$ tar xvzf mailman-2.1.8.tgz
$ cd mailman-2.1.8
$ ./configure --with-cgi-gid=apache --with-mail-gid=mailman --with-python=/usr/local/bin/python2.2
$ make install
$ cd /usr/local/mailman
$ bin/check_perms -f
$ bin/mailmanctl restart待避済の templates ディレクトリ内テキストがある場合には、再起動前に戻しておく。
Mailman のマスター qrunner を再起動します