<!-- -*- mode:text coding:euc-jp -*-
   $FML: post_permit_anyone.sgml,v 1.10 2008/08/18 02:23:59 fukachan Exp $
-->


<sect1 id="config.post.permitanyone">
	<title>
	ケーススタディ: 誰でも投稿可能なＭＬ
	</title>

<para>
article_post_restrictions 変数は
「記事の投稿を許すメンバー」を定義しています。
これを permit_anyone とすると、だれでも投稿可能になります。
<screen>
article_post_restrictions = permit_anyone
</screen>
</para>

<para>
&fml4; と異なり、
上のように書くと本当に「誰でも投稿可能」となることに注意して下さい。
*_restrictions 変数には
reject_system_special_accounts という root などを弾くルールが別途あります。
デフォルトでは、それらを明示的に指定しています
(&fml4; では、このあたり曖昧でした)。
</para>

<para>
&fml4; のように、
root などシステムの特別なアカウントは弾き、
それ以外のユーザからのメールは受け付けるという場合、次のようにします。
<screen>
article_post_restrictions =	reject_system_special_accounts
				permit_anyone
</screen>
注: 以前は reject でしたが、
&fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。
<screen>
article_post_restrictions =	isolate_system_special_accounts
				permit_anyone
</screen>
</para>

<para>
ちなみに 2008/08/17 以前 の
article_post_restrictions のデフォルトは &fml4; 互換のため、
次のようになっています
<screen>
article_post_restrictions =	reject_system_special_accounts
				permit_member_maps
				reject
</screen>
この意味は
「root  などシステムの特別なアカウントからの投稿は拒否」し、
「member_maps にあるユーザであれば投稿を許可」
そうでないなら
「投稿を拒否する」
となります。
</para>

<para>
なお「reject_なになに」および「permit_なになに」という命令は、
マッチしたところで処理が終りになります。
マッチしない場合には次の条件を試します。
</para>

<para>
2008/08/17 以降のバージョンでは SPAM を隔離するのがデフォルトです
<screen>
article_post_restrictions =	isolate_system_special_accounts
				permit_member_maps
				isolate
</screen>
注: reject ではなく isolate となっている。
</para>


<sect2 id="recipes.config.post.permitanyone">
	<title>
	レシピ’s
	</title>

<qandaset>

<qandaentry>

<question>
<para>
自ドメインなら誰でも投稿できる ML
</para>
</question>

<answer>
<para>
&fml4; のように
HOOK でグローバル変数をいじくり回すといった危ないことは出来せん。
</para>

<para>
IO::Adapter の PCRE (Perl互換正規表現)サポートを利用すれば
example.co.jp ドメインからの投稿を許し、
それ以外からの投稿を拒否する restrictions が書けます。
<screen>
[/var/spool/ml/elena/config.cf]

article_post_restrictions       =       reject_system_special_accounts
                                        permit_member_maps
                                        reject

member_maps                     =       pcre:$ml_home_dir/sender.pcre

[$ml_home_dir/domains]

\S+\@example.co.jp
</screen>
</para>

<para>
注: &fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。
<screen>
[/var/spool/ml/elena/config.cf]

article_post_restrictions       =       isolate_system_special_accounts
                                        permit_member_maps
                                        isolate

member_maps                     =       pcre:$ml_home_dir/sender.pcre

[$ml_home_dir/domains]

\S+\@example.co.jp
</screen>

</para>

</answer>

</qandaentry>

</qandaset>

</sect2>


</sect1>
