[PREVIOUS CHAPTER] [NEXT CHAPTER]

2 事例

    2.1	配送プログラム(e.g. sendmail)との通信のログを残す

    ログをとるのがデフォールトです。

    sendmailとのやりとりの記録(もっとも最近のものだけ)デバッグに便利です。
    (デバッグとか終わっちゃって)必要ないなら

    	$NOT_TRACE_SMTP = 1;

    と config.ph にかいてください。ログをとらなくなります。

    2.2	ドメインをソートしてから配送

    bulkmailer の用にドメインをソートしてから配送プログラムに突っ込む。
    でも現代ではほとんど意味がないだろう。

    	$SMTP_SORT_DOMAIN

    を設定するとソートを行なう。

    2.3	$OUTGOING_ADDRESS: perl の生存時間を短くする

    貧弱なCPUのマシンに貧弱なメモリしかない場合(486で8M,16Mみたいな…)には、
    fmlが直接MTAへSMTP配送する時間すら惜しんで perl の生存時間を短くしたい
    という需要があります。そのための機能を提供します。
    $USE_OUTGOING_ADDRESS が non zero の時に次のように動きます。

    まず $OUTGOING_ADDRESS は:include:するだけの単純なMLです。例えば
    /etc/aliasesで

    	list-going: :include:/some/where/list

    のようにかきます。/some/where/list は actives などから生成されたＭＬの
    配送リストです。MTAはこのlistの人に配送を試みます。

       if ($USE_OUTGOING_ADDRESS) {
    	1. fml は一つのアドレス $OUTGOING_ADDRESS だけに送り終了
    	   perl はこの時点で終了します。
    	2. MTAが前述の :include: 先の配送リストを展開しそのメンバーに配送
       }

    XXX: minmin 様にささぐっす(謎)

    [設定の手順]

    0.	elena MLを例にとります。

    1.	include の見本を作る(include-outgoing)

       % cd /var/spool/ml/elena
       % make outgoing

    include-outgoing という見本のファイルが生成されます。

    2.	/etc/aliases に書いて newaliases

       elena-outgoing: :include:/var/spool/ml/elena/include-outgoing

    3. 	makefml config でこの機能を有効にする。

    	-> OPTIONS -> SMTP -> USE_OUTGOING_ADDREESS -> "y"

    $USE_OUTGOING_ADDDRESS を1にします。

    2.4	PIPELININGを使わなくする

    	$NOT_USE_ESMTP_PIPELINING = 1;

    PIPELINE が可能な場合でも使わない

    2.5	複数のマシンの sendmail を使ってパラレルに送信

    複数の(sendmailの走っている)マシン(非常時のセカンダリも含む)

    	$MCI_SMTP_HOSTS = N;

    で指定されたＮ台のマシンを配列 @HOSTS で指定する

       @HOSTS = (machine-1.domain, machine-2.domain, machine-3.domain, ...);

    $HOST と @HOSTS で与えられる N個 のマシンの sendmail をパラレルに使っ
    て(理論上での限界は)N倍配送を高速化する。
    ＃ $HOST も使われてしまうのは、もともと @HOSTS はセカンダリだったから
    ＃ です(歴史的に)。

    もし、指定したサーバ数が N 個に足りない場合は、$HOST が何度も使われま
    す。Nは理論上 int と同じだろうが、普通は netmask できまるわな(笑)でも、
    他のドメインでも使えるから、int までいく(理屈、理屈)
    ＃とくに actives の最後の方の人はうれしい

    2.6	VERPs

    See ../errormails 2.10.

    2.7	MAIL FROM: を指定したい

    MAIL FROM:<アドレス> のアドレス部分は、通常$MAINAINER です。しかし
    SPAM 対策のため $MAINAINER につかっているドメイン名では ISP のメールサー
    バに拒否される場合があります。

    そういった場合は $SMTP_SENDER で MAIL FROM: の値だけを変更することがで
    きます。

    例:
    /var/spool/ml/etc/fml/site_force.ph を作り、このファイルは
    次のようにかきます。

    	$HOST        = "転送ホスト名";
    	$SMTP_SENDER = 'ml-admin@転送ドメイン';
    	1;

    もし、ML ごとに $SMTP_SENDER を変更するなら

    	$HOST="転送ホスト名";
    	$myDOMAIN = '転送ドメイン';

    	$SMTP_SENDER = $MAINTAINER;
    	$SMTP_SENDER =~ s/$DOMAINNAME/$myDOMAIN/;
    	1;

    などとして SMTP_SENDER を動的に変更するのが楽でしょう。

[PREVIOUS CHAPTER] [NEXT CHAPTER]