<!-- -*- mode:text coding:euc-jp -*-
	$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>
