Конфигурация 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%