Маршрутизация Сообщений
Когда дано сообщение, smail проверяет, если адресат - локальный host, или отдаленный пункт. Если целевой адрес host является одним из локального hostname, конфигурированного в конфигурации, сообщение будет передано модулю управления. Иначе, smail вручает адрес ряду драйверов программы маршрутизации, чтобы выяснить которому host'у передано сообщение. Они могут быть описаны в файле routers; если этот файл не существует, используется набор заданных по умолчанию программ маршрутизации. Host адресата передается всем программам маршрутизации по очереди, и находящий наиболее специфический маршрут будет выбран. Рассмотрите сообщение, адресованное joe@foo.bar.com. Одна программа маршрутизации могла бы знать заданный по умолчанию маршрут для всех главных ЭВМ в bar.com области, в то время как другая имеет информацию для foo.bar.com непосредственно. Если там - две программы маршрутизации, которые обеспечивают "лучшее соответствие'', та что раньше в файле программ маршрутизации будет выбрана.
Эта программа маршрутизации теперь определяет транспорт, который нужно использовать, например UUCP, и генерирует новый адрес адресата. Новый адрес передан на транспорт наряду с host. В вышеупомянутом примере, smail мог бы выяснять, что foo.bar.com должен быть достигнут через UUCP использование пути ernie!Bert. Тогда генерируется новая цель из bert!Foo.bar.com!user, и используется UUCP транспорт, поскольку конверт адресован к ernie. При использовании заданной по умолчанию установки, следующие программы маршрутизации доступны: + Если, адрес host адресата может быть разрешен, используя gethostbyname или gethostbyaddr вызов из библиотек, сообщение, будет передано через SMTP. Единственое исключение - если адрес найден, чтобы обратиться к локальному host. Smail также распознает адреса IP, которые пишутся как точечная четверка, как допустимый hostname, если только они могут быть решены через gethostbyaddr обращение. Например, scrooge@ [149.76.12.4] был бы допустим, хотя это необычный почтовый адрес для scrooge на quark.physics.groucho.edu. Если ваша машина находится на Internet, эти программы маршрутизации - не то, что Вы ищете, потому что они не поддерживают записи MX. См. ниже что делать в этом случае. + Если pathalias база данных (/usr/lib/smail/paths) существует, smail пробует искать целевой host (минус любой конечный .uucp) в этом файле. Почта к адресу, согласованному этой программой маршрутизации будет передана используя UUCP, и используя путь, найденный в базе данных. + Адрес host (минус любой конечный .uucp) будет сравниваться с выводом команды uuname, чтобы проверить является ли целевой host фактически соседом UUCP. Если дело обстоит так, сообщение будет передан использованием UUCP транспорта. + Если, адрес не был согласован любой из вышеупомянутых программ маршрутизации, он будет передан smart host. Путь smart host также как транспорт, который нужно использовать установлен в файле конфигурации.
Эти значения по умолчанию работают для многих простых установок, но сбоят при более сложной маршрутизации. Если перед Вами стоит одна из проблем, обсужденных ниже, Вы будет должен установить ваши собственные программы маршрутизации. Возможно самые плохие проблемы возникают, когда ваш host живет в двойной области, и с телефонным вызовом по номеру IP и со связями UUCP. smail будет пытаться передавать любую почту через SMTP. Это - обычно не, что Вы хотите, потому что, даже если связь SLIP активизирована регулярно, SMTP - намного медленнее чем посылка почты над UUCP. С заданной по умолчанию установкой, не имеется никакого способа выйти из smail. Вы можете избегать этой проблемы при наличии проверки файла путей перед запросом решающего устройства, и помещении всех необходимых главных ЭВМ в файл путей. Если Вы не хотите посылать сообщения над SMTP когда-либо, Вы можете также закомментировать решающие рограммы маршрутизации в целом. Другая проблема состоит в том, что заданная по умолчанию установка не обеспечивает истинную маршрутизацию почты Internet, потому что решающая программа маршрутизации не оценивает записи MX. Чтобы давать возможность полной поддержке маршрутизации почты Internet, прокомментируйте эту программу маршрутизации, и разкомментируйте ту что используется BIND взамен. Имеются, однако, smail binaries включенные в некоторые распределения Linux, которые не имеют поддержки BIND. Если Вы даете возможность BIND, но получаете сообщение в paniclog файле, говорящее "программа маршрутизации inet hosts: драйвер связи не найден'', тогда Вы должны получить исходники и перетранслировать smail (см. раздел 15.2 выше). В заключение, это вообще не очень хорошая идея - использовать uuname драйвер.