sendmail は各種の要件をネームサービスに課します。次の節で、これらの要件とその要件を満たす方法を説明します。詳細は、in.named(1M)、nis+(1)、nisaddent(1M)、および nsswitch.conf(4) のマニュアルページを参照してください。
メールドメイン名はネームサービスドメイン名の接尾辞の1つでなければなりません。たとえば、ネームサービスのドメイン名が「A.B.C.D」ならば、メールドメイン名は次のうちのいずれかであるはずです。
A.B.C.D
B.C.D
C.D
D
メールドメイン名は、最初に設定されたときには、多くの場合ネームサービスドメインと同じになります。ネットワークが大きくなれば、ネームサービスドメインを小さく分割してネームサービスを管理しやすくすることができます。ただし、メールドメインは、一貫した別名を提供するために分割されないまま残ることがあります。
ネームサービスにおけるホストテーブルまたはマップは、次の 3 種類の gethostbyname() による問い合わせをサポートするように設定しなければなりません。
mailhost
いくつかのネームサービスの構成では、自動的にこの要件を満たします。
完全なホスト名 (たとえば、smith.admin.acme.com)
多くのネームサービスの構成がこの要件を満たします。
短いホスト名 (たとえば、smith)
sendmail はメールホストに接続し外部へのメールを転送します。メールアドレスが現在のメールドメイン内であるかどうかを判定するために、gethostbyname() が完全なホスト名で呼び出されます。エントリが見つかると、アドレスは内部にあるとみなされます。
NIS、NIS+、および DNS はすべて、短いホスト名を引数にする gethostbyname() をサポートします。したがって、この要件は自動的に満たされます。
名前空間内で sendmail サービスを適切に確立するには、さらにホスト名空間に関する以下の 2 つのルールに準拠する必要があります。
完全なホスト名による gethostbyname() と短いホスト名による gethostbyname() で、一致した結果を生じるようにします。たとえば、両関数がメールドメイン admin.acme.com. から呼び出される限り、gethostbyname (smith.admin.acme.com) と gethostbyname (smith) は同じ結果になるようにします。
共通のメールドメイン下のすべてのネームサービスドメインに対しては、短いホスト名による gethostbyname() で同じ結果を生じるようにします。たとえば、メールドメイン smith.admin.acme.com があるとして、gethostbyname (smith) は、ebb.admin.acme.com または esg.admin.acme.com のいずれのドメインから呼び出されても同じ結果になるようにします。主なメールドメイン名は通常ネームサービスドメインより短く、この要件に各種ネームサービスに対する特殊な意味合いを与えています。