http://www.sendmail.org/m4/ldap_routing.html
LDAP 再配送
FEATURE(`ldap_routing') を用いて、
IETF Internet Draft 「LDAP Schemafor Intranet Mail Routing」
(draft-lachman-laser-ldap-mail-routing-01;
訳注: 2001年6月1日現在 draft-lachman-laser-ldap-mail-routing-02)
を実現することができます。
この機能により、
ある特定のアドレスを他のホストや他のアドレスに、
LDAP 情報により再配送することができます。
LDAP 検索は、
まず完全なアドレス (例: user@example.com) に対して行なわれ、
次にドメイン部 (例:@example.com) について行なわれます。
LDAP による再配送を行なうためには、
次のように自分のドメインを LDAPROUTE_DOMAIN() で設定します。
LDAPROUTE_DOMAIN(`example.com')
既定では、
この機能は
Internet Draft で定義されている方式を利用し、
LDAP 検索で見つからなかったアドレスの拒否はしません。
FEATURE()
コマンドに引数を加えることで、この動作を変更することができます。
FEATURE(`ldap_routing', <mailHost>, <mailRoutingAddress>, <bounce>)
ここで
<mailHost> は、あるアドレスに対して、どのように代わりのメールホストを
見つけるかを指定するマップ定義です。
<mailRoutingAddress> は、あるアド
レスに対して、どのように代わりのアドレスを見つけるかを定義します。
引数
<bounce> が指定されていて、それが"passthru" 以外の単語である場合、
mailHost も mailRoutingAddress も見つからないと、メールがはじかれるよ
うになります。
<mailHost> 対応定義の既定値は次のようになっています。
ldap -1 -v mailHost -k (&(objectClass=inetLocalMailRecipient)
(mailLocalAddress=%0))
一方 <mailRoutingAddress> 対応定義の既定値は次のようになっています。
ldap -1 -v mailRoutingAddress -k (&(objectClass=inetLocalMailRecipient)
(mailLocalAddress=%0))
LDAP サーバホスト名 (-h server) とベース DN (-b o=org,c=COUNTRY) が含
まれていませんが、
LDAP の問合せには両方が必要であることに注意してください。
ここでは、これらの設定が、.mc ファイルの
confLDAP_DEFAULT_SPEC
オプションに設定してあることが前提となっています。
もし設定されていない
場合には、マップ定義は上で述べたように変更されてしまいます。
あるアドレスに対する LDAP 検索結果は、次のようになるでしょう。
mailHost mailRoutingAddress の設定と配送結果
mailHost | mailRoutingAddress |
設定あり | 設定なし |
"local" の
ホストに設定
| mailRoutingAddress へ配送 | 元のアドレスへ配送
|
リモートのホストに設定 |
mailHost へ転送され mailRoutingAddress へ配送
| mailHost へ転送され元のアドレスへ配送
|
設定なし | mailRoutingAddress へ配送
| 元のアドレスへ配送、
または unknown user
としてはじかれる
|
ここで "local" のホストとは、クラス {w} で指定されたホストのことです。
mailHost に設定のない最後の場合については、
FEATURE() 定義
の第三引数の指定により結果が
変わります。
既定値では、メッセージは元のアドレスへ配送されます。
LDAP の行は、
オブジェクトクラス inetLocalMailRecipient として登録し、
アドレスは mailLocalAddress の属性値として列挙しておきます。
mailHost を設定する場合には、
FQDN を一つだけ属性値として設定します。
同様に、mailRoutingAddress を設定する場合には、
属性値として RFC 822 に適合したアドレスを一つだけ設定します。
以下では LDAP データの例を示します
(ldif 形式)。
dn: uid=tom, o=example.com, c=US
objectClass: inetLocalMailRecipient
mailLocalAddress: tom@example.com
mailRoutingAddress: thomas@mailhost.example.com
この例では、tom@example.com 宛てのメールは thomas@mailhost.example.com
へ配送されます。
dn: uid=dick, o=example.com, c=US
objectClass: inetLocalMailRecipient
mailLocalAddress: dick@example.com
mailHost: eng.example.com
この例では、dick@example.com 宛てのメールは、同じアドレスへの配送とな
りますが、ホスト eng.example.com の MX レコードとして登録されているホ
ストへ転送されます。
dn: uid=harry, o=example.com, c=US
objectClass: inetLocalMailRecipient
mailLocalAddress: harry@example.com
mailHost: mktmail.example.com
mailRoutingAddress: harry@mkt.example.com
この例では、harry@example.com 宛てのメールは、ホスト
mktmail.example.com の MX レコードとして登録されているホストへ、新しい
アドレス harry@mkt.example.com 宛てのメールとして転送されます。
dn: uid=virtual.example.com, o=example.com, c=US
objectClass: inetLocalMailRecipient
mailLocalAddress: @virtual.example.com
mailHost: server.example.com
mailRoutingAddress: virtual@example.com
この例では、@virtual.example.com のすべてのユーザ宛てのメールは、
server.example.com の MX として登録されているホストへ転送され、その中
継マシン上のアドレス virtual@example.com へ配送されます。
|