いくつかエイリアスを作る必要がありその結果sendmailは
you@somemachine.dink.com
とyou@pager.dink.com
にメッセージを
区別して送ることができます(somemachineとpagerは実際は同じマシンです)。
これを行うためにsendmailエイリアスデータベースを設定する必要があります。
以下の情報は
http://www.qosina.com/~awm/apache/sendmail.html
から入手した情報に基づいています。
/etc/domainalias
はhost名「pager」を
実際のhost名に変換します。著者のマシン(luckenbach)では変換ファイルは
以下のようになっています:
chris@pager.unm.edu cjs-pager@luckenbach.unm.edu droux@pager.unm.edu nicolas-pager@luckenbach.unm.eduこれは
/etc/domainalias
です。これでほとんどできています。
以下のスイッチを付けてコンパイルしたsendmailバイナリを使います;
-DNDBM -DNEWDB作ったdomainalias.dbファイルを読む必要のあるデータベース操作コード に許可を与えます。
# cd /usr/src/sendmail-8.7.x/makemap # rm Makefile makemap # make CFLAGS='-m486 -O2 -I../src -DNDBM -DNEWDB' LDFLAGS='-s -lgdbm -ldb' makemap # cp makemap /usr/bin
/etc/sendmail.cf
に以下の行を追加します。sendmailが
新しい仮想host名のメールを許可するためです:
Cw pager.yourdomain.com
/etc/domainaliases
をデータベースフォーマットに変換します:
makemap btree domainaliases.db < domainalisaes
/etc/sendmail.cf
に別の行を追加します。これは
コンパイルした domainaliases.db 変換ファイルをsendmailに指示するためです:
Kdomainaliases btree /etc/domainaliases.db
/etc/sendmail.cf
に正確に書かれていることを
確認して下さい。エントリはTABで区切られています。SPACEは使わないで下さい!!
これらはS98ルールセットを挿入しています。
R$+ < @ $+ . > $: $1 < @ $2 > . R$+ < @ $+ . > $* $: (domainaliases $1@$2 $: $1 < @ $2 > $3 $) R$+ < @ $+ . > $* $: (domainaliases $2 $: $1 < @ $2 > $3 $) R$+ < @ $+ > . $: $1 < @ $2 . >
R$+< $+. > $1< $2 > R$+< $+ > $: < > $(domainaliases $1$2 $) R< > $+ @ $* $: < $1 > $(domainaliases * @ $2 $) R< $+ > * $* $: < > $1 $2 R< > $* $: $>3 $1
/sbin/killall sendmail sendmail -bd -q15m
/var/log/maillog
に出力されます。
lonestar~> sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 0 chris@PAGER.phys.unm.edu rewrite: ruleset 0 input: chris @ pager . phys . unm . edu rewrite: ruleset 98 input: chris @ pager . phys . unm . edu rewrite: ruleset 98 returns: chris @ pager . phys . unm . edu rewrite: ruleset 97 input: chris @ pager . phys . unm . edu rewrite: ruleset 3 input: chris @ pager . phys . unm . edu rewrite: ruleset 96 input: chris < @ pager . phys . unm . edu > rewrite: ruleset 96 returns: chris < @ pager . phys . unm . edu . > rewrite: ruleset 3 returns: chris < @ pager . phys . unm . edu . > rewrite: ruleset 0 input: chris < @ pager . phys . unm . edu . > rewrite: ruleset 98 input: chris < @ pager . phys . unm . edu . > rewrite: ruleset 3 input: cjs-pager @ lonestar . phys . unm . edu rewrite: ruleset 96 input: cjs-pager < @ lonestar . phys . unm . edu > rewrite: ruleset 96 returns: cjs-pager < @ lonestar . phys . unm . edu . > rewrite: ruleset 3 returns: cjs-pager < @ lonestar . phys . unm . edu . > rewrite: ruleset 98 returns: cjs-pager < @ lonestar . phys . unm . edu . > rewrite: ruleset 0 returns: $# local $: @ cjs-pager rewrite: ruleset 97 returns: $# local $: @ cjs-pager rewrite: ruleset 0 returns: $# local $: @ cjs-pager