Mailman(メーリングリストサーバ)書庫保存がデフォルトONでアー カイブ領域が一杯を解決する

Mailmanの設定をして、デフォルトで作成すると書庫保存がデフォルトでONになってた。気づかずにいたら、サーバ容量を圧迫してmailmanメーリングリストでメールが送信できな状態に。

対症療法としては、
/var/lib/mailman/archives/private

にある該当保存書庫を削除すればいいんだけど、また時間が経てばいっぱいになる。

1.まずは新しく設定するメーリングリストには

/usr/lib/mailman/Mailman/Defaults.py
○ 件名にメーリングリストナンバーをふる
# Where to put subject prefix for ‘Re:’ messages:
#
# old style: Re: [prefix] test
# new style: [prefix 123] Re: test … (number is optional)
#
# Old style is default for backward compatibility. New style is forced if a
# list owner set %d (numbering) in prefix. If the site owner had applied new
# style patch (from SF patch area) before, he/she may want to set this No in
# mm_cfg.py.
OLD_STYLE_PREFIXING = No

# These format strings will be expanded w.r.t. the dictionary for the
# mailing list instance.
DEFAULT_SUBJECT_PREFIX = “[%(real_name)s %%d] ”

○返信先をメーリングリストとする
# Mailman can be configured to “munge” Reply-To: headers for any passing
# messages. One the one hand, there are a lot of good reasons not to munge
# Reply-To: but on the other, people really seem to want this feature. See
# the help for reply_goes_to_list in the web UI for links discussing the
# issue.
# 0 – Reply-To: not munged
# 1 – Reply-To: set back to the list
# 2 – Reply-To: set to an explicit value (reply_to_address)
DEFAULT_REPLY_GOES_TO_LIST = 1

DEFAULT_ARCHIVE = Off 
「保存書庫」の機能を無効にする。
次項の「DEFAULT_ARCHIVE_PRIVATE」と絡めて、既定では「保存書庫は有効」&「保存書庫は一般に公開する」という設定になっています。

DEFAULT_DIGESTABLE = No
「まとめ読み」を無効ににする。

としておいて、保存書庫ができないようにする。
上記設定は、メーリングリスト作成前に行う必要がある

だけど、もう作成されちゃったメーリングリストに対してはどうするか。

2.作成済みのmailman 各リスト設定をまとめて設定変更する

※設定用ファイル
root@ns:/home# cat tmpmailman.py
#書庫保存しない
archive = 0
#まとめ読みを許可しない
digestable = 0
#マシンのリスト名を広告しない
advertised = 0
#完全個別配送にする
personalize = 2

※実行用ファイル単体で実行可能
root@ns:/home/# cat mailmanchange.sh
#!/bin/bash

# Mailmanのインストールパス
MAILMAN_PATH=/var/lib/mailman

# 変更する設定内容
INPUT_FILE=/home/tmpmailman.py

# 処理対象のリスト
TARGET_LISTS=ls $MAILMAN_PATH/lists
# 特定のリストをファイル記述して処理
## TARGET_LISTS=cat /tmp/target_lists.txt

for list in $TARGET_LISTS;
do
echo $list
$MAILMAN_PATH/bin/config_list -v –inputfile=$INPUT_FILE $list
done

※/var/lib/mailman/arcives フォルダの中のprivate,public をそれぞれ削除した後は管理webが開けなくなるが、上記スクリプトを流すと、管理webが復活する

これで解決した。

参考