oml(仮称)は単純なメーリングリスト作成プログラムです。昔はCやC++で書いたものを使っていましたが,現在はRubyで書いています。
Rubyで書かれたメーリングリストシステムにはほかに次のものがあります(もっとあったら教えてください):
oml.rb をダウンロードして,次のように変更してください。
#! /usr/bin/ruby
をシステムに合わせて書き換えてください。/usr/sbin/sendmail
のパスをシステムに合わせて書き換えてください。DOMAINNAME = "..."
を,作成したいメーリングリストのアドレスのドメイン部分に書き換えてください。以下では example.jp
とします。当然ながら oml.rb を設置するサーバは example.jp 宛のメールを受け取れるものとします。COUNTDIR = "/var/oml/"
を適宜変更してください(/
で終わるようにしてください)。これを実行できるようにして,適当なところ(以下では /usr/local/sbin
)に置いてください。
COUNTDIR
のパーミッションを,メールサーバプロセスが書き込めるように変更してください。
例えば foo@example.jp というメーリングリストを作りたいとします。
適当な場所に宛先一覧のリストを置きます。以下ではこのリストのフルパスを /home/okumura/ml/foo.txt
とします。この中に宛先を改行で区切って並べます。最後の宛先の直後にも改行を入れます(つまり10人のリストなら改行も10回打ちます)。次のようにコメントを括弧で囲んで付けることもできます。
okumura@example.jp (Haruhiko Okumura) hogeta@example.ac.jp (Hogeo Hogeta)
管理者権限で,システムの aliases ファイルに次のような3行を書き込みます。
foo: "|/usr/local/sbin/oml.rb foo" dist-foo: :include:/home/okumura/ml/foo.txt foo-admin: okumura@example.jp
これを保存したあとで,管理者権限でターミナルに
newaliases
と打ち込んでください。
これだけではだれでも投稿できます。リストのメンバーに投稿を制限するには,次のようにします。
foo: "|/usr/local/sbin/oml.rb foo /home/okumura/ml/foo.txt" dist-foo: :include:/home/okumura/ml/foo.txt foo-admin: okumura@example.jp
もしこれで dist-foo@example.jp 宛にスパムが届くようなら,dist-foo を推測困難な名前に変更します。
foo: "|/usr/local/sbin/oml.rb foo /home/okumura/ml/foo.txt hogehoge-foo" hogehoge-foo: :include:/home/okumura/ml/foo.txt foo-admin: okumura@example.jp
もしメンバーの a@example.com さんが b@example.org からもメールを出したいなら,メンバーリストを次のようにします。
a@example.com # b@example.org
もしメンバーでなくても example.jp ドメインの人ならだれでも投稿できるようにするには,メンバーリストに次の行を加えます。
# @example.jp
もしメンバーでなくても example.jp のサブドメインの人ならだれでも投稿できるが badhost.example.jp からは禁止するには,メンバーリストに次の行を加えます(順番に注意)。
# example.jp #- badhost.example.jp
oml.rb ソースを直接書き換えて,正規表現でルールを追加することもできます(デフォルトでは,ある薬物の名前が From: に現れれば配送しないようになっています :-))。
Last modified: 2009-02-24 17:17:52