計算機設定/Mailman - PukiWiki

計算機設定

2009/04/24

インストール

インストール

  • Mailman/mm_cfg.py
    MTA = 'Postfix'
    DEFAULT_EMAIL_HOST = 'sakura.math.kyushu-u.ac.jp'
    DEFAULT_URL_HOST = 'sakura.math.kyushu-u.ac.jp'
    add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
    DEFAULT_SERVER_LANGUAGE = 'ja'
  • /etc/postfix/main.cf
    alias_maps = dbm:/etc/aliases, dbm:/usr/local/mailman/data/aliases
  • chmod +s /usr/sbin/postaliase
  • passwd mailman
    • mailmanのパスワードがLockされているとcronが動かない? (Solaris)

設定

Mailmanコマンドライン処理

既存のコマンド

  • bin/list_members
  • bin/addmembers
  • bin/remove_members
  • bin/newlist

言語の変更

  • setlang.py を以下のように作る.
    from Mailman.Errors import NotAMemberError
    def english(mlist, addr):
            try:
                    mlist.setMemberLanguage(addr,'en')
                    mlist.Save()
            except NotAMemberError:
                    print 'error', addr
    def japanese(mlist, addr):
            try:
                    mlist.setMemberLanguage(addr,'ja')
                    mlist.Save()
            except NotAMemberError:
                    print 'error', addr
    def show(mlist, addr):
            try:
                    print mlist.getMemberLanguage(addr)
            except NotAMemberError:
                    print 'error', addr
    • 実行例
      > bin/withlist -q -r setlang.show listname username@i.softbank.jp
      en
      > bin/withlist -q -l -r setlang.japanese listname username@i.softbank.jp
      > bin/withlist -q -r setlang.show listname username@i.softbank.jp
      ja
      • 余計なメッセージを出さないために -q を付ける.
      • 書き込みが必要な関数には -l (lock) を付ける.

配信状況の変更

  • setdelivery.py を以下のように作る.
    # Delivery statuses
    ENABLED  = 0                                      # enabled
    UNKNOWN  = 1                                      # legacy disabled
    BYUSER   = 2                                      # disabled by user choice
    BYADMIN  = 3                                      # disabled by admin choice
    BYBOUNCE = 4                                      # disabled by bounces
    #
    from Mailman.Errors import NotAMemberError
    def nomail(mlist, addr):
            try:
                    mlist.setDeliveryStatus(addr,BYADMIN)
                    mlist.Save()
            except NotAMemberError:
                    print 'error', addr
    def enable(mlist, addr):
            try:
                    mlist.setDeliveryStatus(addr,ENABLED)
                    mlist.Save()
            except NotAMemberError:
                    print 'error', addr
    def show(mlist, addr):
            try:
                    print mlist.getDeliveryStatus(addr)
            except NotAMemberError:
                    print 'error', addr
    • 実行例
      > bin/withlist -q -r setdelivery.show listname username@i.softbank.jp
      0
      > bin/withlist -q -l -r setdelivery.nomail listname username@i.softbank.jp
      > bin/withlist -q -r setdelivery.show listname username@i.softbank.jp
      3


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSSPDF
Last-modified: 2009-04-24 (金) 20:47:05 (3681d)