FAQ FreeBSD
Страница 37. Настройка почты


7.20. Как настроить sendmail для доставки почты по UUCP?

Конфигурация sendmail, поставляемая с FreeBSD, предназначена для сайтов,
которые имеют непосредственный выход в Internet. Сайты, которым требуется
обмениваться почтой по UUCP, должны использовать другой конфигурационный файл.
Ковыряние в файле /etc/sendmail.cf вручную - это занятие для пуристов (и
мазохистов). Восьмая версия sendmail поставляется с новой системой генерации
конфигурационных файлов с использованием препроцессора m4, в которой ручная
настройка перенесена на более высокий уровень абстракции. Используйте
конфигурационные файлы в каталоге /usr/src/usr.sbin/sendmail/cf.
Если вы не собираетесь инсталлировать все исходные тексты системы, специально
для вас конфигурационные файлы sendmail выделены в отдельный дистрибутив. Если
вы имеете смонтированный компакт-диск, выполните такую команду:
    # cd /cdrom/src
    # cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail

Не волнуйтесь, эти файлы занимают всего лишь несколько сотен килобайт. Файл
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:

Как видите, это часть реально существующего файла. Первые три строки описывают
особые случаи, когда почта, направленная на некоторые домены, будет посылаться
не по стандартному маршруту, а на некоторую близлежащую UUCP-систему для
"сокращения" маршрута доставки. Следующая строка описывает, что почта на
локальный домен в сети Ethernet может быть доставлена по SMTP. В конце файла
описаны близлежащие системы UUCP в псевдо-домене .UUCP, что позволит выполнять
правильную доставку почты на адреса uucp-система!получатель. В последней строке
всегда присутствует одна точка, соответствующая всем остальным доменам, с доста
вкой по UUCP на ближнюю систему UUCP, который является универсальный почтовым
шлюзом во весь остальной мир. Все имена узлов после uucp-dom: должны быть
реально существующими узлами UUCP, что можно проверить командой uuname.
Как напоминание о том, что этот файл должен быть преобразован в формат базы
данных DBM перед использованием, командная строка, выполняющая это действие,
помещена как комментарий в начало файла. При изменении mailertable всегда нужно
выполнять эту команду.
Последняя подсказка: если вы не уверены в правильности настройки маршрутизации
почты, используйте sendmail с опцией -bt. Она переводит sendmail в режим пров
ерки адресов; введите 0 , а затем адрес, который вы хотите протестировать на
правильность маршрутизации. В последней строке будут указаны используемый почто
вый агент, хост получателя, с которым будет работать этот агент, и (может быть
преобразованный) адрес. Выход их этого режима осуществляется по Control-D.
    % sendmail -bt
    ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
    Enter <ruleset> <address>
    > 0 Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
    rewrite: ruleset  0   input: foo @ interface-business . de
    ...
    rewrite: ruleset  0 returns: $# uucp-dom $@ if-bus $: foo \
    < @ interface-business . de >
    > ^D

7.21. Как настроить почту при коммутируемом соединении с Internet?

Если адрес IP вам выделен статически, то вам не нужно ничего менять. Установите
имя вашего хоста в соответствии с выделенным именем DNS, а sendmail сделает всё
остальное.
Если ваш IP-адрес выделяется динамически при коммутируемом соединении по
протоколу ppp с Internet, может быть, вам выделен почтовый ящик на сервере пров
айдера. Предположим, что домен вашего провайдера называется myISP.com, а ваше
имя пользователя - user. Также положим, что вы назвали вашу машину bsd.home, и
что ваш провайдер сказал, что вы можете использовать relay.myISP.com в качестве
почтового шлюза.
Чтобы забирать почту из вашего почтового ящика, вам нужно установить соответств
ующий агент. Хорошим агентом является программа fetchmail, так как она поддержи
вает много различных протоколов. Обычно провайдеры предлагают POP3. Если вы
используете user-ppp, то можете автоматически забирать вашу почту при установ
лении соединения с Internet, добавив такую строку в файл /etc/ppp/ppp.linkup:
    MYADDR:
      !bg su user -c fetchmail

Если вы используете sendmail (как показано ниже) для доставки почты для внешних
пользователей, поместите команду
      !bg su user -c "sendmail -q"

после вышеуказанной строки. Это заставит sendmail обработать вашу очередь почто
вых сообщений, как только будет осуществлено подключение к сети.
Предположим, что вы имеет учётную запись для user на машине bsd.home. В
домашнем каталоге пользователя user на машине bsd.home создайте файл
.fetchmailrc такого содержания:
    poll myISP.com protocol pop3 fetchall pass MySecret

Излишним будет напоминание о том, что этот файл никому не должен быть доступен
для чтения, кроме пользователя user, потому что он содержит пароль MySecret
доступа к почтовому ящику.
Чтобы посылать почту с правильным заголовком from:, вы должны указать программе
sendmail использовать Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , а не Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script Вам может
понадобиться настроить sendmail для посылки всей почты через relay.myISP.com,
чтобы убыстрить её передачу.

Следующий файл .mc должен подойти:
    VERSIONID(`bsd.home.mc version 1.0')
    OSTYPE(bsd4.4)dnl
    FEATURE(nouucp)dnl
    MAILER(local)dnl
    MAILER(smtp)dnl
    Cwlocalhost
    Cwbsd.home
    MASQUERADE_AS(`myISP.com')dnl
    FEATURE(allmasquerade)dnl
    FEATURE(masquerade_envelope)dnl
    FEATURE(nocanonify)dnl
    FEATURE(nodns)dnl
    define(SMART_HOST, `relay.myISP.com')
    Dmbsd.home
    define(`confDOMAIN_NAME',`bsd.home')dnl
    define(`confDELIVERY_MODE',`deferred')dnl

В предыдущем разделе описано, как преобразовать файл .mc в sendmail.cf. И не
забудьте перезапустить sendmail после обновления sendmail.cf.

 
« Предыдущая статья