Subject のキーワードによって受信者を切替えることを考えます。
たとえばSubjectに「資料請求」とあるメールであれば、MLドライバがちょ くせつ資料請求を担当する人たちへフォワードしてあげると効率がよいでしょ う。
これを実現するためには、こんな HOOK が考えられます。
$distribute_run_start_hook = q{ my $config = $curproc->config(); my $header = $curproc->incoming_message_header(); my $subject = $header->get('subject') || ''; use Mail::Message::String; my $sbj = new Mail::Message::String $subject; $sbj->charcode_convert_to_internal_code(); $buf = $sbj->as_str(); my $map = ''; # 注意: このファイルは EUC-JP で書いて下さい if ($buf =~ /資料請求/i) { # 資料請求をうけたら info@example.co.jp 相当のメンバーへ送信 $map = '$ml_home_dir/recipients.info'; } else { # デフォルト $map = '$ml_home_dir/recipients'; } if ($map) { $config->set("recipient_maps", $map); } };ここで $ml_home_dir/recipients.info (/var/spool/ml/elena/recipients.info) には資料請求を担当する人たちのアドレスが書かれています。
前のレシピも参照して下さい。 基本的なロジックは同じで、条件文が時間になるだけです。
$distribute_run_start_hook = q{ my $config = $curproc->config(); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); my $map = ''; if ($hour > 9 && $hour <= 17) { # 昼の部の人たち $map = '$ml_home_dir/recipients.daytime'; } else { # 夜の部の人たち $map = '$ml_home_dir/recipients.night'; } if ($map) { $config->set("recipient_maps", $map); } };
fml8 の IO は IO::Adapter による抽象化をしています。たとえば受信者を グループ fml に含まれるユーザ宛にするには次のようにするだけで十分です。
[config.cf] recipient_maps = unix.group:fml
author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.
For questions about FML, e-mail <fml-bugs@fml.org>.