ケーススタディ: 自動ファイル送り返しサーバ
配送プロセス( /usr/local/libexec/fml/distribute )を改造し、
どんなときでも /some/where/help ファイルを送り返すことを考えます。
たとえば help@fml.org MLを作り、
このアドレスにメールを送ると
(うむをいわさず:-)ヘルプファイルを送り返すというものです。
この場合
config.cf (e.g. /var/spool/ml/help/config.cf)の例は、
次のようになります。
article_post_restrictions = permit_anyone
config.cf ファイルの =cut 行以降に hook を書きます。
$distribute_run_start_hook = q{
$curproc->reply_message( {
type => "text/plain; charset=iso-2022-jp",
path => "/some/where/help",
filename => "help",
disposition => "help example",
});
$curproc->stop_this_process();
};
最後の
$curproc->stop_this_process();
が &fml4; の $DO_NOTHING 変数にあたりますが、&fml8; ではメソッドです。
これで、この HOOK 以降、正常の処理が無視されるようになります。
つまり、なにも実行されなくなるというわけです。
正確には「身のある処理は何も実行されません」が、
reply_message() メソッドで、
メッセージキューに入れられたメッセージを送信する処理が行なわれます。
レシピ’s
§.customize.autoreply.recipes;