at posts/single.html

メーリングリスト tml

メールサーバを外部に公開したのは、自前のメーリングリストを構築するためでもある。 で、そのメーリングリストの構築に挑戦。

メーリングリストのソフトウェアとしては、 fml や majordomo があるけど、ここでは Ruby で書かれている tml を使ってみる。

インストール

tml のインストールはドキュメントに書かれている通り。 ただし、 tml ユーザは作らずに postfix ユーザで動作させることにした。 次に、メーリングリスト宛のメールを Postfix が tml へ渡すための設定をする。 メーリングリスト用の aliases ファイルは /var/spool/tml/etc/aliases に作られるので、 /etc/postfix/main.cf の一部を以下のように修正。

alias_maps = hash:/etc/mail/aliases, hash:/var/spool/tml/etc/aliases
alias_database = $alias_maps

メーリングリストの作成

これは、 /usr/local/tml/tmladmin を使う。 postfix ユーザにて以下のコマンドを実行。 引数の最後には、メーリングリストの管理者アドレスを入れる。

$ tmladmin create test-ml admin@example.org

これで、 /var/spool/tml に test-ml というディレクトリが作られる。 このメーリングリストに関する情報はこのディレクトリに置かれる。 また、 /var/spool/tml/etc/aliases はこのようになる。

test-ml: "|/usr/local/tml/tml test-ml"
test-ml-admin: :include:/var/spool/tml/ml/test-ml/admin
test-ml-ctl: "|/usr/local/tml/tmlctl test-ml"

これで # /usr/bin/newaliases を実行して alias データベースを更新すれば準備完了。

メーリングリストにメンバを追加

$ tmladmin add test-ml user@example.org

メールの送信

さっそく、メーリングリストにメールを送ってみた。 が…以下のエラーメールが返ってきた。

<test-ml@example.org>: Command died with status 100: "/usr/local/tml/tml cml". Command
   output: You are not member of cml, rejected.

なんでだろう? (実際に example.org としているわけでなないので、念のため)

追記

エラーメールが返ってくるのは、単にメーリングリストのあて先を間違っているだけだった…。 ということで、メーリングリストの準備はこれでおしまい。

今の課題はこんな感じかな。

  • メーリングリストのコマンド (test-ml-ctl) に help がない
  • エラーメッセージがPostfix側のエラーメールとして通知される

関連する日記