レシピ’s [配送関連]

1. Subject: に応じて配送リストを変更したい
2. 昼と夜で配送リストを変更する
3. /etc/group を反映したML
4. 送信者(投稿者)には ML の記事は配送しない

1. Subject: に応じて配送リストを変更したい

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) には資料請求を担当する人たちのアドレスが書かれています。

2. 昼と夜で配送リストを変更する

前のレシピも参照して下さい。 基本的なロジックは同じで、条件文が時間になるだけです。


$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);
	}
};

3. /etc/group を反映したML

fml8 の IO は IO::Adapter による抽象化をしています。たとえば受信者を グループ fml に含まれるユーザ宛にするには次のようにするだけで十分です。

[config.cf]

recipient_maps = unix.group:fml

4. 送信者(投稿者)には ML の記事は配送しない

この機能が必要なのは、送信したメールの記録が残るメールリーダを使ってい る場合、MLから戻ってくる記事は必要ないと思う人がいるからだそうです。

fml8 では、いまのところ出来ません。未実装です。

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/fml/menu.ja.html.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

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>.