Руководство FreeBSD
Пред. | Глава 25. Электронная почта | След.

# 25.7. SMTP через UUCP

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

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

Лучшим способом настройки поддержки передачи по UUCP является использование возможности `mailertable`. При этом создается база данных, которая помогает sendmail решать вопросы маршрутизации.

Во-первых, создайте файл `.mc`. В каталоге `/usr/share/sendmail/cf/cf` находятся несколько примеров. Возьмем для примера имя файла `foo.mc`. Все, что потребуется для преобразования его в `sendmail.cf`, это:

    # cd /etc/mail
    # 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

Пред. | Начало | След.
Расширенное руководство | Уровень выше | Настройка почты только для отправки

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.