ケーススタディ: 誰でも投稿可能なML
article_post_restrictions 変数は
「記事の投稿を許すメンバー」を定義しています。
これを permit_anyone とすると、だれでも投稿可能になります。
article_post_restrictions = permit_anyone
&fml4; と異なり、
上のように書くと本当に「誰でも投稿可能」となることに注意して下さい。
*_restrictions 変数には
reject_system_special_accounts という root などを弾くルールが別途あります。
デフォルトでは、それらを明示的に指定しています
(&fml4; では、このあたり曖昧でした)。
&fml4; のように、
root などシステムの特別なアカウントは弾き、
それ以外のユーザからのメールは受け付けるという場合、次のようにします。
article_post_restrictions = reject_system_special_accounts
permit_anyone
注: 以前は reject でしたが、
&fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。
article_post_restrictions = isolate_system_special_accounts
permit_anyone
ちなみに 2008/08/17 以前 の
article_post_restrictions のデフォルトは &fml4; 互換のため、
次のようになっています
article_post_restrictions = reject_system_special_accounts
permit_member_maps
reject
この意味は
「root などシステムの特別なアカウントからの投稿は拒否」し、
「member_maps にあるユーザであれば投稿を許可」
そうでないなら
「投稿を拒否する」
となります。
なお「reject_なになに」および「permit_なになに」という命令は、
マッチしたところで処理が終りになります。
マッチしない場合には次の条件を試します。
2008/08/17 以降のバージョンでは SPAM を隔離するのがデフォルトです
article_post_restrictions = isolate_system_special_accounts
permit_member_maps
isolate
注: reject ではなく isolate となっている。
レシピ’s
自ドメインなら誰でも投稿できる ML
&fml4; のように
HOOK でグローバル変数をいじくり回すといった危ないことは出来せん。
IO::Adapter の PCRE (Perl互換正規表現)サポートを利用すれば
example.co.jp ドメインからの投稿を許し、
それ以外からの投稿を拒否する restrictions が書けます。
[/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
注: &fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。
[/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