Конфигурация sendmail, поставляемая с FreeBSD, предназначена для сайтов, которые имеют непосредственный выход в Internet. Сайты, которым требуется обмениваться почтой по UUCP, должны использовать другой конфигурационный файл.
Ковыряние в файле /etc/sendmail.cf
вручную - это занятие
для пуристов (и мазохистов). Восьмая версия sendmail поставляется
с новой системой генерации конфигурационных файлов с использованием
препроцессора m4, в которой ручная конфигурация перенесена на более высокий
уровень абстракции. Используйте конфигурационные файлы в каталоге
/usr/src/usr.sbin/sendmail/cf
Если вы не собираетесь инсталлировать все исходные тексты системы, специально для вас конфигурационные файлы sendmail выделены в отдельный дистрибутив. Если вы имеете смонтированный компакт-диск, выполните такую команду:
cd /usr/src tar -xvzf /cdrom/dists/src/ssmailcf.aa
Не волнуйтесь, эти файлы занимают всего лишь несколько сотен
килобайт. Файл README
в каталоге cf
может быть
использован как начальное введение в конфигурацию m4.
Для доставки почты по UUCP лучше всего использовать mailertable. В этом файле содержится база данных, используемая sendmail при маршрутизации почты.
Первым делом создайте ваш файл .mc
. Для таких файлов
предназначен каталог /usr/src/usr.sbin/sendmail/cf/cf
.
Посмотрите в нём, там есть уже несколько примеров. Положим, что
вы назвали ваш файл foo.mc
, всё, что вам нужно для
перобразования его в нормальный sendmail.cf
, это:
cd /usr/src/usr.sbin/sendmail/cf/cf make foo.cf cp foo.cf /etc/sendmail.cf
Типичный файл .mc
выглядит примерно так:
include(`../m4/cf.m4') VERSIONID(`Your version number') OSTYPE(bsd4.4) FEATURE(nodns) FEATURE(nocanonify) FEATURE(mailertable) define(`UUCP_RELAY', your.uucp.relay) define(`UUCP_MAX_SIZE', 200000) MAILER(local) MAILER(smtp) MAILER(uucp) Cw your.alias.host.name Cw youruucpnodename.UUCP
Параметры nodns и nocanonify подавляют использование DNS в процессе доставки. Строка UUCP_RELAY может понадобиться только в очень странных случаях, не спрашивайте о них. Просто поместите здесь имя хоста Internet, который может обрабатывать адреса с псевдо-доменами .UUCP; в большинстве случаев достаточно поставить сюда имя почтового шлюза вашего провайдера.
Как только вы сгенерируете конфигурационный файл, вам понадобится
/etc/mailertable
. Типичный пример такого файла:
# # makemap hash /etc/mailertable.db < /etc/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom:sax
Как видите, это часть реально существующего файла. Первые три
строки описывают особые случаи, когда почта, направленная на
некоторые домены, будет посылаться не по стандартному маршруту, а на
некоторую близлежащую UUCP-систему для `сокращения' маршрута доставки.
Следующая строка описывает, что почта на локальный домен в сети
Ethernet может быть доставлена по SMTP. В конце файла описаны
близлежащие системы UUCP в псевдо-домене .UUCP, что позволит
выполнять правильную доставку почты на адреса
``uucp-система!получатель''. В последней строке всегда присутствует
одна точка, соответствующая всем остальным доменам, с доставкой по
UUCP на блишнюю систему UUCP, который является универсальный почтовым
шлюзом во весь остальной мир. Все имена узлов после uucp-dom:
должны быть реально существующими узлами UUCP, что можно проверить
командой uuname
.
Как напоминание о том, что этот файл должен быть преобразован в формат базы данных DBM перед использованием, командная строка, выполняющая это действие, помещена как комментарий в начало файла. При изменении mailertable всегда нужно выполнять эту команду.
Последняя подсказка: если вы не уверены в правильности настройки
маршрутизаци почты, используйте sendmail с опцией -bt
. Она
переводит sendmail в режим проверки адресов; введите ``0 '',
а затем адрес, который вы хотите протестировать на правильность
маршрутизации. В последней строке будут указаны используемый
почтовый агент, хост получателя, с которым будет работать этот агент,
и (может быть преобразованный) адрес. Выход их этого режима
осуществляется по Control-D.
j@uriah 191% sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 0 foo@interface-business.de rewrite: ruleset 0 input: foo @ interface-business . de ... rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ < @ interface-business . de > > ^D j@uriah 192%