アドレスの取り扱いについて

特定のヘッダーを追加してもらうと普段とは別のactivesを参照して異なる配信を行う
投稿した本人のアドレスには配信しない
認証するアドレスを From: だけでなく、X-Sender なども対象にする
メンバー以外からの投稿はモデレートに回す
配信されたメールのTo: の宛先を受信者個々のアドレスにしたい


●特定のヘッダーを追加してもらうと普段とは別のactivesを参照して異なる配信を行う
【fml-support:06643】

# Subject: [uja] ほえほえ の時は actives2 が配送リスト
$START_HOOK = q#
   if ($Envelope{'h:subject:'} =~ /\[uja\]/) {
	$ACTIVE_LIST = "$DIR/actives2";
	undef @ACTIVE_LIST;
   }
#;


●投稿した本人のアドレスには配信しない
【fml-help:01123】

$START_HOOK = q{
	$SKIP{ $From_address } = 1;
};
#$From_address(ヘッダのFrom:)が、配信先として登録されているアドレスの場合に有効です。


●認証するアドレスを From: だけでなく、X-Sender なども対象にする
【fml-help:01315】

From: か X-Sender: のどちらかが
登録されているアドレスなら投稿を許す。

HOOK でこれを実現するには、できるだけ早い段階で $From_address (認証の際に比較する対象のアドレス)
をメンバーであるアドレスに上書きすることでなんとかなります。

例:	Unix From (Reverse Path の部分)
	X-Sender
	From

のいずれかが登録されているアドレスならば OK

   $START_HOOK = q{
	for ($UnixFrom, $Envelope{'h:x-sender:'}, $From_address) {
	   if ($_) {
		&MailListMemberP($_) && ($From_address = $_, last);
	   }	
	}
   };

ノート: 実際には From: の値を格納している変数 $From_address を 
Envelope From なりの値(登録されているアドレス)と入れ替えて(上書きして)
ごまかすというひどい:)方法です。


●メンバー以外からの投稿はモデレートに回す
【fml-support:09394】

$START_HOOK =q%
  if( ! &MailListMemberP($From_address) ){
    $PERMIT_POST_FROM = "moderator";
  }
%;


●配信されたメールのTo: の宛先を受信者個々のアドレスにしたい
【fml-help:00260】

まず、はっきりさせないといけない点は、そういった動作はMLではありませ
ん。MLはあるメッセージをメンバーに再配送していわば一つのメッセージを
共有するものです。

宛名を入れるということはメッセージ本文を変更することなので、メンバー各
自に届くメッセージが異なります。これはMLというよりダイレクトメールを
大量に配送するのと一緒になります。

この場合、fml を改造するより 

        受信者 => メッセージ(宛名+内容)

の組をだ〜っとつくって、shell script で一通ずつメールサーバに送り込む
ようなものを作る方が早そうなんですが…
#たぶん、僕なら、そういう解決策をとるとおもいます。