インストールの段階で説明したとおり、Mailmanの設定はMailman/mm_cfg.pyがMailman/Defaults.pyのデフォルト設定を上書きする形で行われる。それでは、Mailmanに関する全ての設定がこの2つのファイルだけで行われているかというと然にあらず。実はMailmanの設定には「全体設定」と「リスト毎の設定」がある。各リストのデフォルト設定はDefaults.pyとmm_cfg.pyで設定した値、つまりシステム管理者が設定した値となるが、多くの設定に関しては、リストの管理者が変更可能である。この変更はリストの管理者がWebUIから行うことができるが、リスト管理者のメールアドレスリストから配送されるメールのSubjectに付与するPrefixメンバー登録時のWelcomeメッセージの内容のようなリスト固有のものもあれば、メンバー以外からメールを受信した際の挙動(配送、破棄、保留)アーカイブ化処理の有無エラーメールの処理方法などと、Mailmanのコアな部分の挙動についても制御が可能となっている。「リスト毎の設定」はlists/<リスト名>/config.pckというファイルに保存される。この拡張子pckのファイルはPickleファイルと言い、Pythonに標準で添付されているオブジェクトシリアライズのためのフォーマットとなる。バイナリファイルなので、中身を見たい場合にはbin/dumpdbコマンドを使用する。config.pckそれぞれの関係をまとめると以下のようになる。設定内容の移譲について上記の図を見てわかるとおり、config.pckはリスト作成時に作成されるため、リスト作成後にmm_cfg.pyの内容を変更しても、その内容は既存のリストには反映されない。既存のリストへ設定を反映させるには、個別にbin/config_listコマンドで設定を流しこんでやる必要がある。(この方法については後述する)ApacheやPostfixなどの一般的なサーバアプリケーションでは、設定ファイルを書き換えてサーバをリロードすれば設定が反映されるが、Mailmanではここが特殊でハマりやすい。Defaults.pyとmm_cfg.pyはテンプレートで、設定ファイルはconfig.pckのみと覚えておけば、設定を変更するには、当然設定ファイルであるconfig.pckを操作しないといけない、となる。「固有設定」と「個別設定」についてconfig.pckファイルの中身、リスト毎の設定には「固有設定」と「個別設定」がある。それぞれの区別は以下の通り。リストの名前や管理者のメールアドレスなどの、そのリスト自身の独立性を表す設定。リスト作成時にinputとして渡す。mm_cfg.pyから引き継がれ、必要に応じて上書きされた、メーリングリストシステムとしての挙動を制御する設定。設定しない場合はシステム管理者が設定した値が使用される。実際のファイルの中身に明確な区別があるわけではなく、概念として2つの設定があるということを留意してもらいたい。繰り返しになるが、個別設定は「mm_cfg.pyのものが使用される」のではなく、「mm_cfg.pyから生成される」ということを覚えておくこと。config.pckファイルの変更方法config.pckファイルの中身を変更するには2つの方法がある。1つめはWebUIからの変更。これはリスト管理者がログインして行うことができるし、システム管理者がマスターパスワード(bin/mmsitepassで作成したパスワード)でWebUIにログインすることでも変更が可能。(ちなみに、アクセス対象のWebUIのURLはどちらの場合でも同じ。WebUIにログインする際には、リスト個別のパスワードとマスターパスワードの2つが利用可能となる。)もう1つが先程から何度か出ているbin/config_listコマンドである。これはサーバのスクリプトファイルなので、当然、サーバのコンソールを触れる人間、通常はシステム管理者のみが使用できるコマンドとなる。bin/withlistというコマンドもあるのだが、これはかなりPythonプログラマに寄ったコマンドなので、Pythonに馴染みのない管理者にはとっつきにくい。読者になるスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。