<!--
	$FML: command.sgml,v 1.11 2008/08/19 07:11:02 fukachan Exp $
-->


<sect1 id="fml.command.bymail">
	<title>
	コマンドメール (fml をメールで操作する)
	</title>

<para>
fml にメールで文字列(コマンド)を送り込むことで、fml に特定の処理をして
もらうことができます。たとえば、メンバーの登録や削除、過去の記事を取り
寄せるといった処理です。
</para>

<important>

<para>
fml の基本的な使い方は CUI (makefml もしくは fml コマンド) を使った操
作です。
</para>

<para>
「makefml を使える」状況とは、すでにＭＬサーバのホストのシェルが取れて
いることを意味します。つまり SSH (Secure Shell) なりでそのホストに入れ
る権限がある時点で、そのサーバの管理者であると認証済みです。よって、す
でに「ＭＬの管理者」として特権的な操作が許される状況といえます。
</para>

<para>
一方、コマンドメールなどで「一般ユーザに提供する機能」には、いろいろな
制限をかけるべきです。実際、ユーザに提供されているコマンド操作は 
makefml で可能な操作のごく一部です。つまり、コマンドメールとは makefml 
のコマンドの一部を使えなくし、適宜 confirmation を付け加えたコマンド体
系と考えられます。
</para>

</important>


<sect2 id="fml.command.bymail.flow">
	<title>
	処理の流れ
	</title>

<para>
elena@fml.org ＭＬを例にとりましょう。
</para>

<para>
elena@fml.org ＭＬの場合、
コマンドメールを elena-ctl@fml.org に送信してもらうことになります。
メールは MTA が受け、最終的に MTA は
/usr/local/libexec/fml/command
というプログラムを実行します。
command はメールを標準入力から受けとり、
ＭＬとして必要な処理をした後、MTA へ配送を委ねます。
</para>

<warning>
<para>
&fml4; と違い、&fml8; ではコマンドの結果を
一通のメール ( MIME/Multipart )にまとめて返送
しています。
</para>

<para>
複数のコマンドの結果すべてを一通のメールに合体しています。
処理の結果も、送り返すべき記事なども一通です。
</para>
</warning>

</sect2>


<sect2>
	<title>
	モジュールについて
	</title>

<para>
&fml8;  では
<screen>
メールによるコマンド処理
makefml によるコマンド処理
CGI でのコマンド処理
</screen>
これらすべての機能が FML::Command:: クラスのモジュールを使うように
設計されています。
</para>

</sect2>


</sect1>
