coLinux日記

coLinuxはフリーソフトを種として、よろずのシステムとぞなれりける。

sendmail.mc の SMART_HOST

2007-05-03 23:28:15 | sendmail
長い間 sendmail.cf を見てきましたが、実際には cf を使って、sendmail.mc から作成するので、sendmail.cf を知る必要はないように思えます。しかし、cf は m4 のマクロですから sendmail の設定を簡単に作成するには便利ですが、設定のすべてが分かるわけではないです。やはり sendmail.cf を知ってないといけないのではという気持ちから、あえて sendmail.cf がどうなっているかを見てみたわけです。

確かに、sendmail.cf は難しいですが、ほとんど修正する必要がないためあまり深く考えなくても困らないように思えます。

今後は、sendmail.mc の設定を調べてみたいと思いますが、その場合も sendmail.cf はどのように変わるのかを見るように心がけたいと思います。

まず、SMART_HOST を見てみます。これは、

「外部に送るメールはすべてこのホストに送って、そのホストから送ってもらう。」

という機能ですね。これは defineマクロでの定義ですので、sendmail.mc は次のようにしました。

VERSIONID(`TEST 2007 0001')
OSTYPE(linux)dnl
DOMAIN(generic)dnl
define(`SMART_HOST', `mail.example.co.jp')dnl
MAILER(local)dnl
MAILER(smtp)dnl

送るホスト名は、mail.example.co.jp です。sendmail.cf の変更は、

DS



DSmail.example.co.jp

なるだけです。つまり、定義マクロ S が設定されるだけです。これが、Parse1 ルールセットで使われて、
espiya < @ mail000 . goo . ne . jp . > が、

R$* < @ $* > $*         $: $>MailerToTriple < $S > $1 < @ $2 > $3

によって、

< mail . example . co . jp > espiya < @ mail000 . goo . ne . jp . > 

を入力として MailerToTriple ルールセットが呼ばれて、
定義マクロ S が空値の場合は

R< > $*                 $@ $1 

でそのまま戻るところ、S が定義されているので、

R< $+ > $*              $#relay $@ $1 $: $2 

によって、

$# relay $@ mail . example . co . jp $: espiya < @ mail000 . goo . ne . jp . >

になるみたいです。

$@ の送り先のホスト名が置き換わっていますね。その直前で、
R< $=w > $*             $@ $2

があるので、SMART_HOST は自分自身を指定しても無意味になりますね。

ここで、relay を定義している Mコマンドを見ますと、
・ エンベロープ発信者ルールセットは、EnvFromSMTP
・ ヘッダ用発信者ルールセットは、    HdrFromSMTP
・ エンベロープ受信者ルールセットは、MasqSMTP
・ ヘッダ用受信者ルールセットは、    MasqSMTP

です。esmtp との違いは、EnvToSMTP が MasqSMTP になっているところです。ここで、MasqSMTP に渡される入力は、配信エージェントの 3組のアドレス( $: 以下)です。
SMasqSMTP
R$* < @ $* > $*       $@ $1 < @ $2 > $3
R$+                   $@ $1 < @ *LOCAL* >

SEnvToSMTP
R$+                   $: $>PseudoToReal  $1
R$+                   $: $>MasqSMTP  $1
R$* < @ *LOCAL* > $*  $: $1 < $ $j . > $2

SPseudoToReal
R$< @ $+ > $*         $@ < @ $1 > $2
R$+ < @ $+ .UUCP. >   $: < $2 ! > $1
R$+ < @ $* > $*       $@ $1 < @ $2 > $3
.............

ほとんど違いがないみたいです。
次回は、発信者アドレスの書き換えに挑戦するつもりです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする