Руководство FreeBSD

SMTP через UUCP


Настройка поставляемого с FreeBSD sendmail предназначена для сайтов, подключенных к интернет непосредственно. Сайты, осуществляющие обмен почтой через UUCP, должны использовать другой файл настройки sendmail.

Редактирование /etc/mail/sendmail.cf вручную это сложная задача. sendmail версии 8 генерирует файлы настройки через препроцессор , реально настройка выполняется на более высоком уровне абстракции. Файлы настройки m4(1) можно найти в /usr/src/usr.sbin/sendmail/cf.

Если вы не установили в систему все исходные тексты, пакет настройки sendmail можно найти в отдельном архиве исходных текстов. Если CDROM с исходными текстами FreeBSD смонтирован, выполните:

# cd /cdrom/src

# cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail

Эта установка займет всего несколько сотен килобайт. Файл README в каталоге cf содержит введение в основы настройки .

Лучшим способом настройки поддержки передачи по 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/mail/sendmail.cf

Типичный .mc файл может выглядеть примерно так:

VERSIONID(`Your version number') OSTYPE(bsd4.4)



FEATURE(accept_unresolvable_domains) FEATURE(nocanonify) FEATURE(mailertable, `hash -o /etc/mail/mailertable')

define(`UUCP_RELAY', your.uucp.relay) define(`UUCP_MAX_SIZE', 200000) define(`confDONT_PROBE_INTERFACES')

MAILER(local) MAILER(smtp) MAILER(uucp)

Cw your.alias.host.name

Cw youruucpnodename.UUCP

Строки, содержащие accept_unresolvable_domains, nocanonify, и confDONT_PROBE_INTERFACES, предотвратят использование DNS для доставки почты. Пункт UUCP_RELAY необходим для поддержки доставки по UUCP. Просто поместите сюда имя хоста в интернет, способного работать с .UUCP адресами псевдо-доменов; скорее всего, вы введете сюда основной сервер пересылки почты провайдера.


Как только вы сделаете это, потребуется файл /etc/mail/mailertable. Если вы используете для всей почты только одно внешнее соединение, подойдет следующий файл:

# # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable . uucp-dom:your.uucp.relay

Более сложный пример может выглядеть так:

# # makemap hash /etc/mail/mailertable.db < /etc/mail/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:

В первых трех строках обрабатываются специальные случаи, когда почта для домена должна отправляться не на маршрут по умолчанию, а на ближайшее соединение UUCP для сокращения пути доставки. Следующая строка обрабатывает почту, которая может быть доставлена по SMTP для локального Ethernet домена. Наконец, определены маршруты UUCP в нотации псевдо-доменов .UUCP, для включения перезаписи правил по умолчанию правилом uucp-neighbor !recipient. Последняя строка всегда содержит одиночную точку, означающую ``все остальное'', с отправкой через UUCP, являющимся универсальным почтовым шлюзом. Все имена узлов после ключевого слова uucp-dom: должны представлять существующие маршруты UUCP, проверить их можно с помощью команды uuname.

Напоминаем, что этот файл должен быть преобразован в базу данных DBM перед использованием. Командную строку для этой задачи лучше всего поместить в качестве комментария в верхней части файла mailertable. Всегда выполняйте эту команду после правки файла mailertable.

И наконец: если вы не уверены, что некоторые отдельные почтовые маршруты будут работать, запомните параметр sendmail -bt. С этим параметром sendmail

запускается в режиме тестирования адреса; просто введите 3,0 и адрес, который вы хотите протестировать. В последней строке появится сообщение об используемом внутреннем почтовом агенте, хосте назначения, с которым вызывается этот агент, и (возможно транслированный) адрес.Выход из этого режима происходит при нажатии Ctrl+D.

% sendmail -bt

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,0 foo@example.com

canonify input: foo @ example . com ... parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > > ^D


Содержание раздела