サービス案内を自動で送り返す コマンドメールで guide というコマンドを受けるとガイドを送り返します。 この仕組みを応用すると良いでしょう。 デフォルトではメッセージテンプレートのガイド案内が使われます。 &fml4; のようにMLのホームに guide ファイルがあるわけではありません。 もっとも &fml4; との互換性維持のために、 各MLのホームディレクトリに guide ファイルをおけば、 それを送り返してくれます。 「メールの内容にかかわらず常にガイドを送り返す」には、 もうひとひねり必要です。 このためには、 次のように HOOK で常に guide コマンドを実行するようにするとよいでしょう。 なお、この例では通常の処理は行なわないようにしています。 $distribute_run_start_hook = q{ # guide コマンドを呼び出します。 # guide コマンドの内容は汎用のメールキューシステムに渡されます。 use FML::Command; my $dispatch = new FML::Command; my $context = $curproc->command_context_init("guide"); $dispatch->guide($curproc, $context); # 通常の処理を行ないません。 $curproc->stop_this_process(); }; # コマンドメールでも同じくガイドを送り返すように $command_mail_run_start_hook = $distribute_run_start_hook; &fml4; と異なり、 配送用とコマンドメール用それぞれのプロセスごとに HOOK が分かれていることに注意して下さい。 このため上のように、 最後に同じ内容のコマンドメール用の HOOK も定義する必要があります (次のように変数をコピーすれば十分です)。 $command_mail_run_start_hook = $distribute_run_start_hook; お礼”も”返す意見受け付け用ML 「意見受付」用のMLを考えてみましょう。 前レシピに似ていますが、少し違います。 このMLに意見を送ってくれた人には、 とりあえずお礼の返事 「ご意見ありがとうございました。返事はしばらく待ってね。」を出し、 投稿されたメールを関係者に配送します。 よって、 (1) だれでも投稿できて、 (2) お礼を常に出し、 (3) さらに普通のMLとして動作する、 ように設定します。 (3) は「返事の前に、関係者が議論するため」の機能という想定です。 [config.cf] article_post_restrictions = permit_anyone =cut $distribute_run_start_hook = q{ my $cred = $curproc->credential(); my $sender = $cred->sender(); # MLのメンバーでないならガイドを送り返します。 # MLのメンバーに対しては普通のMLとなります。 # この HOOK により、ガイドを送り返す機能が"追加されている"状態です。 unless ($cred->is_member($sender)) { # guide コマンドを呼び出します。 use FML::Command; my $dispatch = new FML::Command; my $context = $curproc->command_context_init("guide"); $dispatch->guide($curproc, $context); } };