メンバーの登録方法などについて

特定ドメインの自動登録を拒否
メーリングリストに参加可能なユーザのドメインを絞る
confirmを管理者が行う
WELCOMEのメールの Reply-To: を管理者宛にする
From行のアドレスに@以下をつけないで送られてくるメールの自動補整
メンバーを信頼度に応じて3段階に分ける
From と 配送先が一致した時に、配送を止めたい(dynamical skip?)
登録時の welcome メールが送り返されるのを止める
MLへ投稿せずに自動登録する


●特定ドメインの自動登録を拒否
【fml-support:09147】

#$AUTO_REGISTRATION_HOOK で $from か $From_address を見て、
#弾くことはできるとおもいます
#
$AUTO_REGISTRATION_HOOK = q#
   if ($From_address =~ /^\d+\@/) {
	&Mesg(*e, "deny your subscribe request");
	return;
   }
#;
#この例は、数字だけアカウント名@ドメイン形を拒否


●メーリングリストに参加可能なユーザのドメインを絞る
【チュートリアル−メンバーの登録方法などについて−8.7 メーリングリストに参加可能なユーザのドメインを絞る】

# 自動登録やリモートでの登録の際の制限については 
# $REGISTRATION_ACCEPT_ADDR という変数で制限できます。
#
$START_HOOK = q#
   if ($From_address !~ /permit_domain\.co\.jp$/i) {
	&Mesg(*Envelope, 
	   "We permit user@*permit_domain.co.jp can join this list.");
	$DO_NOTHING = 1;
   }
#;
#これで permit_domain.co.jp 以外のユーザには「permit_domainのゆー
#ざだけしか参加できないよん」とメールが返って終りにできます。


●confirmを管理者が行う
【fml-support:08960】

#登録者宛に転送されるメールを HOOK を用いて横取り
$FML_EXIT_HOOK = q#
   if (! &MailListMemberP($From_address)) {
        $Envelope{'message:h:to'} = $MAINTAINER;
   }
#;


●WELCOMEのメールの Reply-To: を管理者宛にする
【チュートリアル−メンバーの登録方法などについて−4.17 $AUTO_REGISTRATION_HOOK】

$AUTO_REGISTRATION_HOOK = q#
    $e{'GH:Reply-To:'} = $MAINTAINER;
#;


●From行のアドレスに@以下をつけないで送られてくるメールの自動補整
【チュートリアル−メンバーの登録方法などについて−4.15 サーバをインストールしたホストからのメンバーの自動登録ができない】

#変なことがおきえますから、YOUR OWN RISK でやってください
#
$START_HOOK  = q#
	if ($From_address !~ /\@/) {
		$From_address = "$From_address\@ローカルなドメイン";
	}
#;


●メンバーを信頼度に応じて3段階に分ける
【チュートリアル−メンバーの登録方法などについて−5.5 メンバーを信頼度に応じて3段階に分ける】


#group 1: モデレータ(の人々)。無条件に信頼される。
#group 2: 信頼できるメンバ。普通に送ると普通に配送される。
#group 3: 一般メンバ。普通に送るとモデレータに転送され、
#	    通常のモデレータの手順を踏む。
#priv というファイルをMLのHOMEにつくり、group 2 に対応する信頼でき
#るメンバー(だがモデレータではない)の群を登録する(一行一アドレス)。
#
$PERMIT_POST_FROM  = "moderator";
$START_HOOK = q#
     $PRIV_LIST = "$DIR/priv";
      if (&CheckMember($From_address, $PRIV_LIST)) {
         $PERMIT_POST_FROM  = "members_only";
   }
#;


●From と 配送先が一致した時に、配送を止めたい(dynamical skip?)
【チュートリアル−メンバーの登録方法などについて−8.1 From と 配送先が一致した時に、配送を止めたい(dynamical skip?)】

$START_HOOK = q#
	$SKIP{'fukachan@phys.titech.ac.jp'} = 1
		if &AddressMatch($From_address, 'fukachan@phys.titech.ac.jp');
#;
#この例では From:がfukachan@phys.titech.ac.jpであれば、本人に配送しない。


●登録時の welcome メールが送り返されるのを止める
【チュートリアル−メンバーの登録方法などについて−8.3 登録時の welcome メールが送り返されるのを止める】

* fml 3.0 シリーズ

libamctl.pl というファイル( 例: /usr/local/fml/libamctl.pl )に sub
AutoRegist ではじまる関数があって、その最後の方に

   &SendFile($from, $WELCOME_STATEMENT, $WELCOME_FILE);

というところがあります。ここを除いてもらうと絶対 welcome は送られませ
ん。次のような HOOK が 3.0 シリーズにはないので、トリッキーな回避の仕
方はないです。


* fml 4.0
#fml 4.0 では、非常にトリッキーなやりかたでよくありませんが、
#
$AUTO_REGISTRATION_HOOK = q#
        sub SendFile {};
#;


●MLへ投稿せずに自動登録する
【チュートリアル−メンバーの登録方法などについて−8.5 メーリングリストへの初投稿に至る手数をなるべく少なくしたい】

# メンバ以外のアドレスからML名-ctl@xxxxxxxxxx ($CONTROL_ADDRESS)
# へメールを送信した場合に membersに自動登録する。
#
    $AUTO_REGISTRATION_LINES_LIMIT = -1;
    $START_HOOK = q#
    	if ($Envelope{'mode:ctladdr'}) {
    		$AUTO_REGISTERED_UNDELIVER_P   = 1;
    	}
    	else {
    		$AUTO_REGISTERED_UNDELIVER_P   = 0;
    	}
    #;