カテゴリ

mailman

Mailman の管理画面、[全体的オプション]の下の方にある「会員リストの 1 ページに表示される最大の会員数.」からそれぞれのMLの設定は変更できるが、サーバ全体のMLの設定を一気に変えたい場合の処理。

以下、 [MMDIR] = Mailmanのインストールディレクトリ

1.[MMDIR]/bin/set_member_chunksize.py として以下を作成(例えば全てのMLで 300 に設定する場合)

def set_member_chunksize(mlist):
    mlist.Lock()
    mlist.admin_member_chunksize = 300
    mlist.Save()
    mlist.Unlock()

2.シェルスクリプトで以下を作成。仮に名前を set_member_chunksize.sh とする。

#! /bin/sh

# [MMDIR] は適切なものに変更してください
MMDIR=[MMDIR]

cd ${MMDIR}/bin

for mlist in `./list_lists -b`
do
    ./withlist -r set_member_chunksize ${mlist}
done

3.2.のシェルスクリプトを実行。


より汎用化する場合。

def set_member_chunksize(mlist,csize):
    mlist.Lock()
    mlist.admin_member_chunksize = csize
    mlist.Save()
    mlist.Unlock()

とすることで、下記のように実行時に設定値を指定できる。

./withlist -r set_member_chunksize [ML名] [設定値]

コメント

いただいたコメント
  1. kaz. Suenaga より:

    多分、Pythonの中で素直に全MLをループさせる方法もあるかと思いますがPythonにあまり詳しくないので逃げました。

    どなたか詳しい方いらっしゃいましたら教えていただけると幸いです。