メーリングリスト 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側のエラーメールとして通知される