tml

tml はメーリングリストツールです。Ruby で実装されています。

機能

必要なもの

インストール

# useradd tml
# mkdir /usr/local/tml /var/spool/tml
# chown tml /usr/local/tml /var/spool/tml
# su tml
% ruby ./setup.rb
% ruby ./test.rb
% ruby ./install.rb

設定

/usr/local/tml/tml.conf を変更して tml の動作を変更することがで きます。tml.conf は Ruby スクリプトです。Ruby の文法に従います。

有効なパラメータは以下の通りです。

項目名説明デフォルト値
$var_dirML情報保持ディレクトリ"/var/spool/tml"
$smtp_serverメール配送サーバ"localhost"
$smtp_portメール配送サーバのSMTPポート"smtp"
$lock_timeoutロック獲得を待つ時間(秒)300
$etc_dir共通ファイル保持ディレクトリ"/var/spool/tml/.etc"
$auto_aliasesML作成/破棄時に自動的に $etc_dir/aliases を更新するかどうかtrue
$newaliases$etc_dir/aliases 更新後に実行するコマンド。
postfix の場合は「postalias aliases」コマンドを記述しておけば良いでしょう
nil
$default_not_member非メンバからの投稿が可能かどうかのデフォルト値false
$default_subject_mlnameサブジェクトにML名を付加するかどうかのデフォルト値true
$default_counter_widthサブジェクトに付加するカウンタの桁数のデフォルト値5
$default_remote_commandメールでのコマンドを許可するかどうかのデフォルト値false
$default_member_listメンバ一覧の取得を許可するかどうかのデフォルト値false

MLの管理

tmladmin を使用して ML の管理を行ないます。

% tmladmin cmd

cmd は次のいずれかです。

コマンド説明
list MLの一覧を表示します。
create mlname admin MLを作成します。 admin はMLの管理者メールアドレスです。
drop mlname MLを破棄します。 MLのデータ $var_dir/mlname は -mlname-yyyymmddhhmmss にリネームされます。
add mlname addr ... MLにメールアドレスを追加します。
bye mlname addr ... MLからメールアドレスを削除します。
addml mlname child ... MLの下に子MLを追加します。
byeml mlname child ... MLの下から子MLを取り除きます。
members mlname MLのメンバ一覧を出力します。
allmembers mlname MLのメンバ一覧を出力します。子MLがある場合は子MLのメンバも出力します。
children mlname MLの子ML一覧を出力します。
parents mlname MLの親ML一覧を出力します。
addadmin mlname addr MLの管理者アドレスを追加します。
byeadmin mlname addr MLの管理者アドレスを削除します。
setattr mlname attr=value ... MLの属性を設定します。
getattr mlname [attr ...] MLの属性を出力します。属性を指定しない場合は一覧表示します。
setcounter mlname number MLのカウンタを設定します。
getcounter mlname MLの現在のカウンタ値を出力します。

setattr,getattr で使用できる属性は次の通りです。

属性名説明
senderMLの配信時に使用されるエンベロープ送信者
overviewMLの概要
subject_mlnameSubjectにML名を付加するか否か
counter_widthカウンタの桁数
remote_commandリモートコマンドが有効か否か
remote_adminリモート管理コマンドが有効か否か(*)
spoolメールをスプールするか否か(*)
member_listリモートコマンドでメンバ一覧を出力するか否か
web_interfaceWebインタフェースを使用するか否か(*)

(*)印は現バージョンでは意味がありません。

MLへの配送

MLへの配送は /etc/aliases などに次のようなエントリを作成しておけば良いでしょう。

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

なお、ML作成/破棄時には $etc_dir/aliases が自動的に更新されるた め、複数の aliases ファイルが参照可能な MTA の場合は、このファイ ルも指定しておくのが良いでしょう。この場合は、$newaliases パラメー タを設定する必要があります。たとえば、Postfix の場合は以下のよう に指定しておけば良いでしょう。

$newaliases = "postalias #{$etc_dir}/aliases"

TODO

履歴

2003-11-12 バージョン 0.2
2003-11-01 バージョン 0.1

作者

とみたまさひろ

Last modified: Wed Nov 12 08:00:09 JST 2003