Доступ к Серверу Имен
Управление просмотром адресов хостов назначается вхождением сервиса hosts в вашем файле сервисного переключателя. Если ваша система имеет встроенную поддержку сервисного переключателя (например, Ultrix, Solaris, или DEC OSF/1) то вполне вероятно, что ваша система уже нормально сконфигурирована. В ином случае, sendmail проконсультируется с файлом /etc/service.switch, который должен быть создан. Sendmail использует только два вхождения: hosts и aliases, хотя системные программы могут использовать иные сервисы (особенно сервис passwd для просмотра имени пользователя с помощью getpwname).
Однако, некоторые системы (типа SunOS) будут производить просмотр DNS независимо от установленных значений сервисного переключателя. В частности, системная подпрограмма gethostbyname(3) используется для просмотра имен хостов, а многие версии поставщиков пытаются использовать комбинации DNS, NIS, и просмотр файла /etc/hosts без консультации с сервисным переключателем. Sendmail не пытается обойти эту проблему, и просмотр DNS будет сделан в любом случае. Если же у вас вообще не сконфигурирован сервер имен, например, у вас чисто UUCP узел, sendmail будет получать сообщения "connection refused" при попытке соединения с сервером имен. Если вхождение hosts переключателя имеет перечисленным в любом месте списка сервис "dns", sendmail будет считать это временной неудачей и поставит сообщение в очередь для последующей обработки; другими словами, он игнорирует данные сервера имен.
Такая же технология используется при решении о просмотре MX. Если вы хотите иметь поддержку MX, вы должны иметь "dns" перечисленным как сервис во вхождении hosts переключателя.
Опция ResolverOptions (I) позволяет вам изменять опции сервера имен. Командная строка принимает последовательность флагов, как описано в resolver(3) (с удаленным первым "RES_"). Каждый из них может быть предварен опциональным "+" или "-". Например, строка O ResolverOptions=+AAONLY -DNSRCH
включает опцию AAONLY (принимать только авторитативные сообщения) и выключает опцию DNSRCH (поиск по доменному пути). По умолчанию большинство флагов библиотеки разрешителя отключены, включены только DNSRCH, DEFNAMES, и RECURSE. Вы также можете включить "HasWildcardMX", чтобы указать, что существует масочная запись MX, соответствующая вашему домену; это отключает сопоставление MX при канонификации имен, что может привести к неверной канонификации.
Версия конфигурации уровня 1 выключает DNSRCH и DEFNAMES для просмотров, делаемых при доставке, но оставляет их включенными во всех остальных случаях. Версия 8 sendmail игнорирует их при канонификационных просмотрах (при использовании $[ ... $]), и всегда делает поиск. Если вы не хотите автоматического расширения имен, не вызывайте $[ ... $].
Правила поиска для $[ ... $] - это что-то непохожее, чем необычное. Если просматриваемое имя имеет хотя бы одну точку, оно всегда будет опробовано без изменений. Если это не удастся, будет опробован уменьшенный путь поиска, и в конце концов будет опробовано неизмененное имя (но только для имен без точек, потому что имена с точками уже были опробованы). Это позволяет именам типа "utc.CS" совпадать с узлами в Чехословакии, а не с узлами в вашем местном отделении Computer Science. Они также предпочитают записи типов A и CNAME записям типа MX- поэтому, если находится запись MX, о ней делается заметка, но просмотр продолжается. Таким образом, если вы имеете масочную запись MX, соответствующую вашему домену, то это не будет распознано, как будто все имена совпадают с ней.
Для полного выключения доступа к серверу имен в, системах без поддержки сервисного переключателя (типа SunOS), вы должны будете перекомпилировать sendmail с -DNAMED_BIND=0 и удалив -lresolv из списка искомых при линковании библиотек.