さて、ここで先の IP address の問題に立ち返りましょう。 結論から言うと、sendmail.mx は NIS map の IP address を参照せず、IP address の解決には DNS を用います (但し、Solaris ではもう少し事情は複雑で、リゾルバと呼ばれるライブラリそのもの が nsswitch.conf によって動作が変わるために、sendmail 自身は DNS を用いている と思っているにもかかわらず、実際には NIS 経由で DNS を参照している場合もあります)。 そのために、DNS には登録されていないが、NIS には登録されているようなマシンに sendmail.mx は通常メールを配送出来ません。 もし、これを可能にしようとするならば、一旦受け取ったメールを sendmail.nomx の動いているマシンに中継する必要があります ( IP address が解決出来ないのだから中継も出来ないと思われるかもしれませんが、 実は IP address を陽に指定した中継機能を使うことで可能です)。 一方、sendmail.nomx はすべての参照を NIS のみで行います。 従って、sendmail.nomx は、NIS host map にあるマシンへの配送は出来ますが、 それ以外には配送できず、従って多くの場合 Internet mail は配送出来ません。 もし、Internet mail を配送させようとするならば、sendmail.mx が動いている マシンに一旦配送し、外部への配送をその sendmail.mx に中継してもらう必要が あります。
IP や host の問題が分かったので、もう一つの問題、すなわち sendmail が 必ず NIS を参照する場合について説明しましょう。これは先に少し述べたように mail aliases の参照に関連しています。 aliases とは、到着したメイルの宛て先を別の宛て先に変更する場合に利用されます。 勿論、ローカルに /etc/aliases がある場合には、nsswitch.conf の設定により、 それも参照されます。従って、もし、NIS aliases と /etc/aliasese に矛盾があれば メイルのピンポンが起こる可能性もあります。通常は、NIS aliases を使用し、 どうしても必要な場合にのみ /etc/aliases を利用すれば良いでしょう。 NIS aliases を更新するには、NIS サーバー上の /etc/aliases を編集し、 /var/yp ディレクトリで make します。/etc/aliases は次のような形式のファイルです。
# staff: kanayama,sakamoto,saga,momma kanayama: kanayama@sparc06 sakamoto: sakamoto@sparc01 saga: saga@sparc05 momma: momma@sugar
これによって、kanayama 宛のメイルは必ず kanayama@sparc06 へと転送されます。
つまり、個々人の mail spool ホストを固定することが可能になります
(ちなみに、上の staff のように複数の人を一つの aliases として登録する事も
出来ます)。
この aliases がないと、あるホストに到着したメイルが受け取って良いと考えられる
メイルならば(つまり、ユーザー登録されたユーザー)、そのホストはメイルを受け
取ってしまいます。その結果、複数のホストに個人宛のメイルが分散されてしまう
事があるわけです。勿論、受け取る可能性のある全てのホストに /etc/aliases を
書くことでも回避出来ますが、NIS のところで述べたようにそれでは管理の手間が
増えるばかりです。ちなみに、メイルの届く可能性のある全てのホスト上で
すべてのユーザーのホームディレクトリが参照することが出来る場合には、
sendmail は ~/.forward
も参照します。従って、メイルの転送においては、
NIS, /etc/aliases, ~/.forward
が順に参照されますが、基本的に
.forward
ファイルはユーザーの自由になる、つまりカスタマイズ可能な
ものですので、これに配送を頼るのは得策とは言えません。