コマンドメール (fml をメールで操作する)
fml にメールで文字列(コマンド)を送り込むことで、fml に特定の処理をして
もらうことができます。たとえば、メンバーの登録や削除、過去の記事を取り
寄せるといった処理です。
fml の基本的な使い方は CUI (makefml もしくは fml コマンド) を使った操
作です。
「makefml を使える」状況とは、すでにMLサーバのホストのシェルが取れて
いることを意味します。つまり SSH (Secure Shell) なりでそのホストに入れ
る権限がある時点で、そのサーバの管理者であると認証済みです。よって、す
でに「MLの管理者」として特権的な操作が許される状況といえます。
一方、コマンドメールなどで「一般ユーザに提供する機能」には、いろいろな
制限をかけるべきです。実際、ユーザに提供されているコマンド操作は
makefml で可能な操作のごく一部です。つまり、コマンドメールとは makefml
のコマンドの一部を使えなくし、適宜 confirmation を付け加えたコマンド体
系と考えられます。
処理の流れ
elena@fml.org MLを例にとりましょう。
elena@fml.org MLの場合、
コマンドメールを elena-ctl@fml.org に送信してもらうことになります。
メールは MTA が受け、最終的に MTA は
/usr/local/libexec/fml/command
というプログラムを実行します。
command はメールを標準入力から受けとり、
MLとして必要な処理をした後、MTA へ配送を委ねます。
&fml4; と違い、&fml8; ではコマンドの結果を
一通のメール ( MIME/Multipart )にまとめて返送
しています。
複数のコマンドの結果すべてを一通のメールに合体しています。
処理の結果も、送り返すべき記事なども一通です。
モジュールについて
&fml8; では
メールによるコマンド処理
makefml によるコマンド処理
CGI でのコマンド処理
これらすべての機能が FML::Command:: クラスのモジュールを使うように
設計されています。