http://www.sendmail.org/m4/mailertables.html
MAILERTABLE
MAILERTABLE を使用する
(訳注
mailertable は static routing の機能を実現します。
つまり手動で固定の経路を設定します。
固定というのは 下記の左辺の行先のものを処理する時に、
DNS に MX を問合せる代りに、自分で決めるという意味です。
)
FEATURE(`mailertable') を使用するには、さまざまなドメインについての経
路情報を含む外部データベースを作成します。例えば、以下の
ような文字形式の mailertable ファイルを用意します。
.my.domain xnet:%1.my.domain
uuhost1.my.domain uucp-new:uuhost1
.bitnet smtp:relay.bit.net
(この表は 2007/12/01 に修正しました。一番最初に . が抜けていました)
この内容は通常 /etc/mail/mailertable ファイルとして用意します。
これを以下のようにして
データベース形式に変換して利用します。
makemap hash /etc/mail/mailertable < /etc/mail/mailertable
設定内容の意味は単純です。
左半分の最初がピリオド(.) でない時には、その通りの
指定された名前に一致します。
一方最初がピリオド(.)の
時は、
(先頭のピリオド(.)を含む) そのドメイン名で終わるものに一致します。
つまり、
空ではない文字列の前に正規表現
".+" (訳注: 1個以上の任意の文字の意)
がついているものと見なされるのです。
比較は、最大一致→最小一致
(most-to-least qualified) の順でなされます。
たとえば、
"uuhost1.my.domain" の行については、
上記の例では ".my.domain" が最初にありますが、
より長く一致する二番目の行に一致します。
注意:"user@my.domain" 宛てのメールは、( ドメイン部分が my.domain の前に何もないので)
上記の表のいずれの行にも一致しません。そのような宛先が使えるようにするには、
次のような行を書きます。
my.domain esmtp:host.my.domain
右半分は "mailer:host" のようにメイラ: 機械名の組にします。
ここで、
"mailer" の部分はメイラの 設定用シンボル名
(すなわち、sendmail.cf ファイルの {M} 行) です。
"host" 部分はメイラに渡されるホスト名となります。
ドメインベースの一致方法
(すなわち、ドットに続く一致方法) では、
ホスト名のワイルドカード部分を補完するために "%1" を使用します。
たとえば、最初に挙げた例の一番目の行は、
"anything.my.domain" 宛てのすべてのメールを同じホスト名に送信しますが、
その際には (おそらく実験的な) メイラ xnetを使用しています。
特に外からの入口(gateway)
においては、一時的に MX レコードを無効にしたい場合があ
ります。たとえば、あるドメイン内のすべてのメールをある機械 (relay.domain) に一旦 MX
して、その機械から内部の機械(gateway.domain) に直接転送したいとします。そうするには、
DNS の設定で、
*.domain. IN MX 0 relay.machine
としておきます。これにより一旦 relay.machine に集まります。
その上で relay.machine 上では以下の mailertable を使用します。
.domain smtp:[gateway.domain]
[かぎかっこ] の指定で、このホストについては MX レコードが無効になりま
す
- (訳注1)
-
smtp:[gateway.domain] のように書いた場合には、DNS を参照しないで、
代わりに gateway.domain の A レコードのアドレスに向けて送信されます)。
これにより
mailertable が
MX レコードを再び参照することを防ぎ、 MX ループを避けることが出来ます。
- (訳注 2):
-
user@example.com のメールを転送したい場合、
.example.com esmtp:[gateway.example.com]
と書いたのでは
一致しません。
example.com esmtp:[gateway.example.com]
のように最初に (.) のない行も必要です。
|