Mailman Tips

Mailman on FreeBSD
Mailman Tips
Mailman Tips 2
Mailman Tips 3
Mailman Tips 4

ダイジェスト配送メールの定型文のカスタマイズ

【質問】

ダイジェスト配送メールには、メールの始まりに「本日の話題」までの間に

「Webブラウザを使って入退会するには以下のURLにどうぞ.」などの定型文

が付加されるのですが、これをカスタマイズするにはどうすればよいでしょ

うか。また、それはlist毎に設定可能でしょうか?

prefix>/Mailman/Utils.py の maketext/findtext を読むと、

   # 1. the list-specific language directory
   #    lists/<listname>/<language>
   #
   # 2. the domain-specific language directory
   #    templates/<list.host_name>/<language>
   #
   # 3. the site-wide language directory
   #    templates/site/<language>
   #
   # 4. the global default language directory
   #    templates/<language>

にテンプレートを置くと、メッセージをカスタマイズできること がわかります。で、問題のダイジェストに付加される定型文は

この部分は、mailman/Mailman/Handlers/ToDigest.py が生成している(らしい)

所までは追えたのですが、そこから先が??です。また、やぶにらみしている

のかもしれません。^^

このプログラムの send_i18n_digest() で、'masthead.txt' を 使っていることがわかりますので、templates/ja/masthead.txtを 適当なディレクトリにコピーして編集してやればよいことになります。

ま、templates/ja の中のテンプレートを片っ端から眺めて みれば、わかりますけど。

list_name ML のダイジェストの定型文をカスタマイズする
cp /usr/local/mailman/templates/ja/masthead.txt /usr/local/mailman/lists/list_name/ja/
vi /usr/local/mailman/lists/list_name/ja/masthead.txt

Mailmanのダイジェスト配送の間隔をリスト毎に変更する

Mailmanの各種定時業務?は、/var/cron/tabs/mailman に記述されている。が、「このファイルを直接編集するな」とかいてある。^^
ダイジェスト関連のコマンドは cron/senddigests だそうなので、

/usr/local/mailman/cron/senddigests --help

すると、

Dispatch digests for lists w/pending messages and digest_send_periodic set.
Usage: /usr/local/mailman/cron/senddigests [options]
Options:
   -h / --help
       Print this message and exit.

   -l listname
   --listname=listname
       Send the digest for the given list only, otherwise the digests for all
       lists are sent out.

とのことなので、どうやら、リスト毎に設定を変えられそうである。

cp /usr/local/mailman/cron/crontab.in /usr/local/mailman/cron/crontab-sp.in

などとして、更新しても書き換えられないように待避しておいて

vi /usr/local/mailman/cron/crontab-sp.in

# Noon, mail digests for lists that do periodic as well as threshhold delivery.
0 12 * * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/senddigests --listname=list1
0 12 * * 3 /usr/local/bin/python2.4 -S /usr/local/mailman/cron/senddigests --listname=list2

などと希望の変更を加える。念のために

cp /var/cron/tabs/mailman /var/cron/tabs/mailman-orig

として待避しておいて、 /var/cron/tabs/mailman に変更を反映させるために

crontab -u mailman /usr/local/mailman/cron/crontab-sp.in

http://mm.tkikuchi.net/mailman-install/node41.html
設定変更を確認

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/usr/local/mailman/cron/crontab.in installed on Fri May  4 09:09:20 2007)
# (Cron version -- $FreeBSD: src/usr.sbin/cron/crontab/crontab.c,v 1.22.2.1 2006/09/03 17:32:32 brooks Exp $)
0 8 * * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/checkdbs
0 9 * * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/disabled
# Noon, mail digests for lists that do periodic as well as threshhold delivery.
0 12 * * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/senddigests
0 12 * * 3 /usr/local/bin/python2.4 -S /usr/local/mailman/cron/senddigests --listname=list1
0 12 * * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/senddigests --listname=list2
0 5 1 * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/mailpasswds
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/gate_news
19 2 * * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/nightly_htdig
27 3 * * * /usr/local/bin/python2.4 -S /usr/local/mailman/cron/nightly_gzip

師、宣わく

師曰く「VERPをつかうべし~」

http://mm.tkikuchi.net/pipermail/mmjp-users/2007-June/002094.html

てことで・・・

配送エラー処理のVerpセクションをONに。

Defaults.py.in の日訳も追随しました。以下の場所にあります:

http://hatuka.nezumi.nu/repos/mailman-Defaults.py.in-ja/

下記URLはeucでどうぞ

http://hatuka.nezumi.nu/repos/mailman-Defaults.py.in-ja/tags/Release_2_1_9/Defaults.py.in?view=markup

http://cr.yp.to/proto/verp.txt

/usr/local/mailman/Mailman/Defaults.py
# http://cr.yp.to/proto/verp.txt
VERP_FORMAT = '%(bounces)s+%(mailbox)s=%(host)s'
VERP_REGEXP = r'^(?P<bounces>[^+]+?)\+(?P<mailbox>[^=]+)=(?P<host>[^@]+)@.*$'
# VERP format and regexp for probe messages
VERP_PROBE_FORMAT = '%(bounces)s+%(token)s'
VERP_PROBE_REGEXP = r'^(?P<bounces>[^+]+?)\+(?P<token>[^@]+)@.*$'
# Set this Yes to activate VERP probe for disabling by bounce
#VERP_PROBES = No
VERP_PROBES = Yes
#VERP_PASSWORD_REMINDERS = No
VERP_PASSWORD_REMINDERS = Yes
VERP_PERSONALIZED_DELIVERIES = No
VERP_DELIVERY_INTERVAL = 1
VERP_CONFIRMATIONS = No

Mailmanの通し番号を変更する

#/MAILMAN_INSTALL_DIR/bin/withlist LIST-NAME

# /usr/local/mailman/bin/withlist list_name
Loading list LIST-NAME (unlocked)
The variable `m' is the LIST-NAME MailList instance
>>> m.Lock()
>>> m.post_id
6.0
>>> m.post_id = 150
>>> m.Save()
>>> ^D        <-- Ctrl + D
Unlocking (but not saving) list: LIST-NAME
Finalizing
#

Vertual-mailman バーチャルホスト上で運用中のMailmanに新しいリストを作成した場合

Virtualホスト上で運用中のMailmanに新しいリストを作成した際、

/usr/local/mailman/data/virtual-mailman の変更は手動で行う必要がある。

vi /usr/local/mailman/data/virtual-mailman 

postmap /usr/local/mailman/data/virtual-mailman

参考URL
EditEdit Mailman Tips 4429 2011-11-04 (金) 12:25:12


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS