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


<chapter id="setup.newml">
	<title>
	Unix 上でＭＬを作成する
	</title>

<para>
コマンドラインの設定支援ツールには makefml と fml があります。
makefml は &fml4; と同じシンタックスです。
fml は引数の並び順が違うだけの同じコマンドです。
<screen>
makefml COMMAND ML      (optional arguments)
fml     ML      COMMAND (optional arguments)
</screen>
以下では makefml を例にして説明します。
</para>


<sect1 id="setup.newml.default">
	<title>
	makefml newml でＭＬを作る (デフォルトドメインの場合)
	</title>

<caution>
<para>
デフォルトドメインの場合、&fml4 と同じです。
</para>

<para>
バーチャルドメインを使う場合、&fml4; とはＭＬ名の扱いが異なります。
バーチャルドメインの詳細については
<link linkend="setup.newml.nondefault">
<xref linkend="setup.newml.nondefault">
</link>
を参照して下さい。
</para>
</caution>

<para>
ＭＬの作成は makefml を使って行ないます。
使い方は &fml4; と同様です。
<screen>
% su fml
% makefml newml elena
   ... 処理の様子が出力される(略) ...
</screen>
</para>

<para>
デフォルトの /var/spool/ml 以外のパスを使いたい場合は、
次のいづれかの方法を使って下さい。
(1) インストール時の configure オプションで変更しておく、
(2)
<link linkend="virtualdomain">
(バーチャルドメインの仕組みを援用して)
</link>
makefml newdomain コマンドで使いたいパスを指定する、
<screen>
% su root
# makefml newdomain fml.org /var/spool/virtual/fml.org
# exit
% su fml
% makefml newml elena
   ... 処理の様子が出力される(略) ...
</screen>
注意: 
本ドキュメントの他の場所でも言及しているように、
(運用するドメインは増えていくと仮定して)
全ＭＬをバーチャルドメインで運用しておく方が素直だと考えてます。
</para>


<para>
「makefml newml elena」を実行すると次のような処理を行ないます。

<itemizedlist>

   <listitem>
        <para>
	/var/spool/ml/elena に
	<screen>
	config.cf
	include
	include-ctl
	</screen>
	ファイルなどを作る(適宜、ＭＬ名やドメイン名を変換しながら)。
        </para>
   </listitem>

   <listitem>
        <para>
	/var/spool/ml/etc/mail/aliases に elena ＭＬの設定を仕込む。
	postalias コマンドで
	/var/spool/ml/etc/mail/aliases.db を再生成する
	(Postfix 用の設定)。
        </para>
   </listitem>

   <listitem>
        <para>
	~fml/.qmail-* ファイル群を生成する
	(qmail 用の設定)。
        </para>
   </listitem>

   <listitem>
        <para>
	procmailrc の見本を作る
	(これは見本を作るだけ)。
        </para>
   </listitem>

   <listitem>
        <para>
	HTML 化された記事を置く場所として以下の階層を用意する/作る。
	<screen>
	~fml/public_html/fml/mlarchive/$domain/$ml/
	</screen>
	たとえば elena@fml.org なら
	<screen>
	~fml/public_html/fml/mlarchive/fml.org/elena/
	</screen>
	を用意する。
	デフォルトでは、
	ここに HTML 化された記事が自動的に作られる(
	ただし、デフォルトでは apache の設定が無効のはずなので
	インターネットには見えない)。
        </para>
   </listitem>

   <listitem>
        <para>
	CGI インターフェイスを用意する。
	ドメインで一番偉いインターフェイス
	(そのドメインのＭＬは全部操作できる)が
	<screen>
	~fml/public_html/cgi-bin/fml/$domain/admin/config.cgi
	</screen>
	また、各ＭＬで一番偉いインターフェイス(そのＭＬの操作ができる)
	<screen>
	~fml/public_html/cgi-bin/fml/$domain/ml-admin/$ml/config.cgi
	</screen>
        </para>
   </listitem>

</itemizedlist>
</para>

</sect1>


<sect1 id="setup.newml.nondefault">
	<title>
	makefml newml でＭＬを作る (デフォルトドメインでは"ない"場合)
	</title>

<caution>
<para>
デフォルトドメインではない場合、&fml4; と大きく異なります。
注意点は
(1) 最初に newdomain コマンドを使う、
(2) 操作時、ＭＬ名にはドメインをつける、
の二点です。
</para>
</caution>

<para>
ＭＬ作成には makefml を使います。
使い方は &fml4; と同様です。
しかしながら「ＭＬ名にきちんとドメインまでつける」ところが異なります。
注意して下さい。
</para>

<para>
(新しいドメインを使いはじめる際)
初回は newdomain コマンドによるドメイン定義も必要です。
<screen>
例: nuinui.net ドメインでのＭＬを使いはじめる時。

% su root
# makefml newdomain nuinui.net /var/spool/virtual/nuinui.net
# exit
% su fml
% makefml newml elena@nuinui.net
</screen>
二回目以降は
<screen>
% su fml
% makefml newml rudo@nuinui.net
</screen>
だけでＭＬを作成できます。
</para>

<para>
newdomain コマンドでは、
「ドメイン」と「使う ml_home_prefix ディレクトリ」のペアを指定します。
上の例はハッシュで書けば
<screen>
{ nuinui.net => /var/spool/virtual/nuinui.net }
</screen>
を意味します。
このコマンドは /usr/local/etc/fml/ml_home_prefix ファイルの編集を代行します。
上の例では ml_home_prefix ファイルに次の行が追加されます。
<screen>
nuinui.net /var/spool/virtual/nuinui.net
</screen>
ちなみに、この対応関係を解消するコマンドは rmdomain です。
</para>

<para>
newml コマンドは、引数のＭＬ名を「ドメイン名つき」にする以外、
デフォルトドメインの場合と操作方法は同じです。
</para>

<para>
また、バーチャルドメインの場合、
makefml newml は各 MTA ごとのバーチャルドメイン用設定見本を作ります。
たとえば
<screen>
/var/spool/nuinui.net/etc/sendmail/virtusertable
/var/spool/nuinui.net/etc/postfix/virtual
/var/spool/nuinui.net/etc/qmail/virtualdomains
/var/spool/nuinui.net/etc/procmail/procmailrc
</screen>
が作られます。
MTA の設定変更時の参考にして下さい。
</para>

<para>
ちなみに procmail は、見本(
/var/spool/nuinui.net/etc/procmail/procmailrc
)自体がドメイン名つきなので、
特別バーチャルドメイン用ではありません。
いずれにせよ、見本に御利用下さい。
</para>

<para>
技術的な詳細は、
<link linkend="virtualdomain">
バーチャルドメイン
</link>
の章を参照して下さい。
</para>

</sect1>


<!-- メールサーバの設定について -->
&sect.setup.postfix;
&sect.setup.qmail;


<!-- 各ＭＬの設定について -->
&sect.setup.config.cf;


<!-- レシピ -->
&sect.setup.newml.recipes;

</chapter>
