Mailman: ヘッダーを加工するハンドラ

[Samba-JP]http://www.samba.gr.jp) のメーリングリストサーバーは fml と ezmlm-idx であったが、これを [Mailman[http://cgi.samba.gr.jp/mailman/] に移行した。 色々気に入らない点もあるが、fml よりはマシかな。 ezmlm-idx によい日本語対応の Web インターフェイスがあればよかったのだが、 メールのテンプレートメッセージの日本語化作業も途中までやったきり終わらないし、 ezmlm-idx を管理できる人もいないし、このまま Mailman で行くことになりそう。

投稿メールの投稿者本人による確認機能があることを期待していたのだが、 残念ながらなかった。これはかなり痛い。 この機能がないと、 会員でないアドレスからの投稿に司会者の承認が必要なリストの場合、 司会者が大量に送られてくる spam の中から正規の投稿を見付け出さなければならない。 会員ごとに 投稿に対する確認通知を送ります というオプションが指定できるのだが、 これは、投稿を受領し会員に配送したことを通知する機能だった。

もう一つの問題が。標準ではヘッダーを加工する方法が用意されていないみたい。 仕方がないので、ハンドラを急造してみた。 すべてのリストに問答無用で適用されてしまうが、 Samba-JP 環境では問題ないので放置しよう。 Python を書くのは今回が初体験となった。

def process(mlist, msg, msgdata):
    msg['X-ML-Name'] = mlist.realname
    if msg.haskey('Received'):
        for received in msg.getall('Received'):
            msg['X-Received'] = received
        del msg['Received']
    if msg.haskey('Disposition-Notification-To'):
        msg['X-Disposition-Notification-To'] = msg['Disposition-Notification-To']
        del msg['Disposition-Notification-To']
        msg['X-Disposition-Notification-To'] = msg['Disposition-Notification-To'] blah bla xxx xx kjflksdjflkajsdlkfjs

これを Mailman/Handlers 以下に Headers.py などのような名前で作成して、mm_cfg.py は次のように記述する。

GLOBAL_PIPELINE.insert(1, 'Headers')

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0

コメントを書く

Your email is never shared. * 印の項目は必須項目です。

*
*