<!--
   $FML: post.sgml,v 1.7 2003/04/15 14:51:46 fukachan Exp $
-->

<sect1 id="usage.post">
	<title>
	記事の投稿 (配送処理プログラムについて)
	</title>

<para>
fml.org の elena ＭＬへの投稿は、
普通にメールを elena@fml.org に送信することです。
メールは MTA が受け、最終的に MTA は
/usr/local/libexec/fml/distribute
というコマンドを実行します。
fml.pl はメールを標準入力から受けとり、
ＭＬとして必要な処理(記事の保存やヘッダの書き換え)をした後、
MTA へ配送処理を委ねます。
</para>


<sect2>
	<title>
	fml.pl が ＭＬとして処理するべきこと
	</title>


<para>
subject のタグをつける、もしくは記事番号などを更新するなど
<screen>
例

Subject: [elena:00100] えれなさん素敵
</screen>
(デフォルトではつけません)
</para>

<para>
記事の保存(テキストファイル)
</para>

<para>
HTML 化された記事を作る。
~fml/public_html/ 以下に作成されます。
</para>

<para>
スレッド追跡システムのデータベースを更新する。
</para>

</sect2>


<sect2>
	<title>
	投稿記事の振舞いを制御する変数
	</title>

<!--
XXX-TODO 投稿記事の振舞いを制御する変数
-->

<warning>
<para>
ごめん、まだ、書いてない
</para>
</warning>

</sect2>


<sect2>
   <title> 解説: ブートしていく様子 </title>

<para>
<link linkend="bootloader">
fml ブートローダ
</link>
の章でも例に上げているように、次のようにブートします。
</para>


<para>
/usr/local/libexec/loader は /usr/local/etc/fml/main.cf を読みこみます。
fml_version 変数から使うべきライブラリのバージョンを決めます。例えば 
fml_vesrion が current-20010501 となっていたら
/usr/local/lib/fml/current-20010501/ 以下にあるライブラリを使うといっ
た具合です。
</para>

<para>
@INC を設定した後、loader (/usr/local/libexec/fml/distribute の実体) 
は FML::Process::Switch をロードし、$0 を調べます。その名前から自分の
仕事は配送処理だと知ります。
</para>

<para>
loader は /usr/local/etc/fml/defaults/バージョン/modules ファイルを調べ、
ロードするべきモジュールが
FML::Process::Distribute 
だと知ります。
最後に、このクラスをロードし、配送処理に移ります。
</para>

</sect2>


</sect1>
