*はじめに [#f014197c]
新しいドメインを取得して同じサーバーに設定したときに,Mailmanで運用しているメーリング・リストを新しいドメインに移行する方法についてのメモです.
以下の環境で確認しました.
-Mailman
-Postfix
*Postfixにおけるバーチャル・ホストの設定 [#a1cebe96]
ここでは,現在 example.com で運用しているMailmanの ml という名前のメーリング・リストを同じサーバーで運用しているバーチャル・ホスト virtual.org へ移行します.
/etc/postfix/main.cf に以下の行を追加します.
#geshi(txt){{
# Virtual domains
virtual_alias_domains = virtual.org
virtual_alias_maps = hash:/etc/postfix/virtual, hash:/etc/mailman/virtual-mailman
}}
バーチャル・ホストの設定ファイルを作成します.
#geshi(sh){{
# touch /etc/mailman/virtual-mailman
# chown apache:mailman /etc/mailman/virtual-mailman
}}
バーチャル・ホストの設定ファイルに設定を書き込みます.
#geshi(txt){{
virtual.org IGNORE
@virtual.org @example.com
}}
ここでは,virtual.org ドメイン宛のメールをすべて元の example.com ドメイン宛に転送しています.
バーチャル・ホストの設定を反映させ,Postfixを再起動します.
#geshi(sh){{
# postmap /etc/mailman/virtual-mailman
# /etc/rc.d/init.d/postfix restart
}}
*Mailmanにおけるメーリング・リストの設定変更 [#e36ab2d4]
/etc/mailman/mm_cfg.py に次の行を追加します.
#geshi(txt){{
add_virtualhost('www.virtual.org', 'virtual.org')
}}
前者はURLのホスト名,後者はメールのホスト名です.
withlist コマンドを使ってメーリング・リストの設定を変更します.
#geshi(sh){{
# /usr/lib/mailman/bin/withlist ml
ml のリストを読み込中 (ロック解除)
変数 `m' が ml の MailList インスタンスです
>>> m.Lock()
>>> m.host_name='virtual.org'
>>> m.web_page_url='http://www.virtual.org/mailman/'
>>> m.Save()
>>>
リストをロック解除 (保存はしてません): ml
最終処理中
}}
Ctrl-D で終了しています.
Mailmanを再起動します.
#geshi(sh){{
# /etc/rc.d/init.d/mailman restart
}}
以上です.