LoginSignup
4
3

More than 3 years have passed since last update.

Mailman のまとめ読み(digest)機能をオフにしておく

Last updated at Posted at 2017-06-14

Mailman のメール配送が遅いのが気になって、/var/log/mailman/error を確認したら、以下のようにメモリエラーが発生していました。

Jun 14 09:55:46 2017 (166) Traceback (most recent call last):
  File "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 99, in process
    send_digests(mlist, mboxfp)
  File "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 147, in send_digests
    send_i18n_digests(mlist, mboxfp)
  File "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 413, in send_i18n_digests
    isdigest=True)
  File "/var/lib/mailman/Mailman/Queue/Switchboard.py", line 110, in enqueue
    msgsave = cPickle.dumps(_msg, protocol)
MemoryError: out of memory

Mailman のまとめ読み(digest)機能とは、メーリングリストに投稿されたメールをそのまま配送するのではなく、1日に1回まとめて配送する機能です。が、ほとんど使わない機能ですし、上記のようにメモリエラーの原因にもなりますので、オフにしておく方が良いようです。

管理下のメーリングリストが少なければウェブインタフェースで対応可能ですが、管理下のメーリングリストが多数になる場合には、やはり withlist コマンドの出番になります。以下のような内容の、/usr/lib/mailman/bin/disable_digest.py を用意します。

/usr/lib/mailman/bin/disable_digest.py
def disable_digest(mlist):
    mlist.Lock()
    if len(mlist.digest_members) == 0:
        mlist.digestable = False
        mlist.digest_is_default = False
        print("%s is not digestable" % mlist.real_name)
    mlist.Save()

次に、以下のように withlist コマンドを実行して、まとめ読み会員のいない全てのメーリングリストに対して、まとめ読み機能をオフにしておきます。

$ sudo -u list /usr/lib/mailman/bin/withlist -r disable_digest -a

この設定後に新規作成されるメーリングリストについても、まとめ読み機能を標準でオフにしておくため、/etc/mailman/mm_cfg.py に以下のような設定を書いておきます。

DEFAULT_DIGESTABLE = No
DEFAULT_DIGEST_IS_DEFAULT = No
4
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3