Страница:
Для каждого из них, доступен ряд драйверов, из которого Вы можете
выбирать те, в которых Вы нуждаетесь. Вы описываете их smail в паре
файлов, а именно routers, directors, и transports в /usr/lib/smail. Если эти
файлы не существуют, приняты приемлемые значения по умолчанию.
Если Вы хотите изменить маршрутизацию smail, или изменить
транспорт, Вы должны получить типовые файлы из smail исходного
распределения, скопировать типовые файлы в /usr/lib/smail, и изменять
их согласно вашим потребностям. Типовые файлы конфигурации также
даны в Приложении(аппендиксе) 20.3.
15.7 Маршрутизация Сообщений
Когда дано сообщение, smail проверяет, если адресат - локальный
host, или отдаленный пункт. Если целевой адрес host является одним из
локального hostname, конфигурированного в конфигурации, сообщение
будет передано модулю управления. Иначе, smail вручает адрес ряду
драйверов программы маршрутизации, чтобы выяснить которому host'у
передано сообщение. Они могут быть описаны в файле routers; если
этот файл не существует, используется набор заданных по умолчанию
- 275 -
программ маршрутизации.
Host адресата передается всем программам маршрутизации по
очереди, и находящий наиболее специфический маршрут будет выбран.
Рассмотрите сообщение, адресованное joe@foo.bar.com. Одна
программа маршрутизации могла бы знать заданный по умолчанию
маршрут для всех главных ЭВМ в bar.com области, в то время как другая
имеет информацию для foo.bar.com непосредственно. Если там - две
программы маршрутизации, которые обеспечивают "лучшее
соответствие'', та что раньше в файле программ маршрутизации будет
выбрана.
Эта программа маршрутизации теперь определяет транспорт,
который нужно использовать, например UUCP, и генерирует новый
адрес адресата. Новый адрес передан на транспорт наряду с host. В
вышеупомянутом примере, smail мог бы выяснять, что foo.bar.com
должен быть достигнут через UUCP использование пути ernie!Bert.
Тогда генерируется новая цель из bert!Foo.bar.com!user, и используется
UUCP транспорт, поскольку конверт адресован к ernie.
При использовании заданной по умолчанию установки, следующие
программы маршрутизации доступны:
+ Если, адрес host адресата может быть разрешен, используя
gethostbyname или gethostbyaddr вызов из библиотек, сообщение, будет
передано через SMTP. Единственое исключение - если адрес найден,
чтобы обратиться к локальному host.
Smail также распознает адреса IP, которые пишутся как точечная
четверка, как допустимый hostname, если только они могут быть решены
через gethostbyaddr обращение. Например, scrooge@ [149.76.12.4] был
бы допустим, хотя это необычный почтовый адрес для scrooge на
quark.physics.groucho.edu.
Если ваша машина находится на Internet, эти программы
маршрутизации - не то, что Вы ищете, потому что они не
поддерживают записи MX. См. ниже что делать в этом случае.
+ Если pathalias база данных (/usr/lib/smail/paths) существует, smail пробует
искать целевой host (минус любой конечный .uucp) в этом файле. Почта
к адресу, согласованному этой программой маршрутизации будет
передана используя UUCP, и используя путь, найденный в базе данных.
- 276 -
+ Адрес host (минус любой конечный .uucp) будет сравниваться с
выводом команды uuname, чтобы проверить является ли целевой host
фактически соседом UUCP. Если дело обстоит так, сообщение будет
передан использованием UUCP транспорта.
+ Если, адрес не был согласован любой из вышеупомянутых программ
маршрутизации, он будет передан smart host. Путь smart host также как
транспорт, который нужно использовать установлен в файле
конфигурации.
Эти значения по умолчанию работают для многих простых
установок, но сбоят при более сложной маршрутизации. Если перед
Вами стоит одна из проблем, обсужденных ниже, Вы будет должен
установить ваши собственные программы маршрутизации.
Возможно самые плохие проблемы возникают, когда ваш host живет
в двойной области, и с телефонным вызовом по номеру IP и со связями
UUCP. smail будет пытаться передавать любую почту через SMTP. Это -
обычно не, что Вы хотите, потому что, даже если связь SLIP
активизирована регулярно, SMTP - намного медленнее чем посылка
почты над UUCP. С заданной по умолчанию установкой, не имеется
никакого способа выйти из smail.
Вы можете избегать этой проблемы при наличии проверки файла
путей перед запросом решающего устройства, и помещении всех
необходимых главных ЭВМ в файл путей. Если Вы не хотите посылать
сообщения над SMTP когда-либо, Вы можете также закомментировать
решающие рограммы маршрутизации в целом.
Другая проблема состоит в том, что заданная по умолчанию
установка не обеспечивает истинную маршрутизацию почты Internet,
потому что решающая программа маршрутизации не оценивает записи
MX. Чтобы давать возможность полной поддержке маршрутизации
почты Internet, прокомментируйте эту программу маршрутизации, и
разкомментируйте ту что используется BIND взамен. Имеются, однако,
smail binaries включенные в некоторые распределения Linux, которые не
имеют поддержки BIND. Если Вы даете возможность BIND, но
получаете сообщение в paniclog файле, говорящее "программа
маршрутизации inet hosts: драйвер связи не найден'', тогда Вы должны
получить исходники и перетранслировать smail (см. раздел 15.2 выше).
В заключение, это вообще не очень хорошая идея - использовать
uuname драйвер.
- 277 -
15.7.1 База данных путей
Smail ожидает находить pathalias базу данных в файле путей в
/usr/lib/smail. Этот файл необязателен, так если Вы не хотите выполнять
любой pathalias вообще, просто удалите любой существующий файл
путей.
Paths должен быть сортируемый файл ASCII, который содержит
входы, которые отображают имена пункта адресата UUCP. Файл
должен сортироваться, потому что smail использует двоичный поиск
пункта. Комментарии не позволяются в этом файле, и имя пункта
должно отделиться от пути, используя МЕТКУ ТАБУЛЯЦИИ. Pathalias
базы данных обсуждены подробнее в главе 14 ..
Если Вы генерируете этот файл вручную, Вы должен
удостовериться, чтобы включить все допустимые имена для пункта.
Например, если пункт известен и простым именем UUCP и полностью
квалифицированным именем области, Вы должны добавить вход для
каждого из них. Файл может сортироваться конвейерной пересылкой
его через команду sort.
Если ваш пункт является только пунктом листа, то никакой файл
paths, не должен быть необходим вообще: только установите атрибуты
smart host в вашем файле конфигурации, и оставьте всю маршрутизацию
вашей подаче почты.
15.8 Поставка Сообщений Локальным Адресам
Обычно, локальный адрес - только имя входа в систему
пользователя, когда сообщение передается в его mailbox,
/var/spool/mail/user. Другие случаи включают отправку по почте списка
имен, и пересылку почты пользователем. В этих случаях, локальный
адрес расширяется до нового списка адресов, которые могут быть или
локальны или отдаленны.
Кроме этих "нормальных" адресов, smail может обрабатывать другие
типы локальных адресатов сообщения, подобно именам файла, и
командам трубопровода. Они - не адреса, так что Вы не можете
посылать почте на /etc/passwd@vbrew.com.
- 278 -
Имя файла - что-нибудь, что начинается с наклонной черты вправо
(/) или тильды (~). Письмо относится к исходному каталогу
пользователя, и возможно только, если имя файла принималось из a
.forward файл или вход пересылки в mailbox (см. ниже). При поставке
файла, smail конкатенирует сообщения к файлу, создавая его в случае
необходимости.
Командой трубопровода может быть любая команда Unix, которой
предшествует символ трубопровода (|). Это заставляет smail вручать
команду оболочке наряду с аргументами, но без подачи " | ". Сообщение
непосредственно будет подано этой команде на стандартном вводе.
Например, чтобы отправить почту в локальную newsgroup, Вы
могли бы использовать команду оболочки, именованную gateit, и
устанавливать локальный результат, который передает все сообщения
из этого списка в команду, используя " | gateit ".
Если вызов содержит незаполненное пространство, он должен быть
включен в двойные кавычки. Из-за проблем защиты команда не
выполняется, если адрес был получен несколько сомнительным
способом (например, если файл, из которого адрес принимался, был
перезаписываем каждым).
15.8.1 Локальные Пользователи
Наиболее общий случай для локального адреса - обозначить mailbox
пользователя. Этот mailbox - локализовался /var/spool/mail, и имеет имя
пользователя. Если он не существует, он создан smail.
Обратите внимание, что, хотя /var/spool/mail - в настоящее время
стандартное место, чтобы поместить mailbox файлы, некоторое
программное обеспечение почты может иметь другой paths,
компилируемый в, например /usr/spool/mail.
Имеются два адреса которые требуются smail: mailer - daemon и
Постмастер. При производстве сообщения удара для почты undeliverable,
машинописная копия послана постмастеру объяснение исследования (в
случае, если это могло бы быть из-за проблемы конфигурации). Mailer -
daemon используется как адрес отправителя для сообщения удара.
Если эти адреса не называют допустимые счета на вашей системе,
- 279 -
smail неявно отображает mailer - daemon как postmaser, и постмастера как
root, соответственно. Вы должны обычно отменять это совмещением
имени постмастера с тем, кто является ответственным за поддержание
программного обеспечения почты.
15.8.2 Пересылки
Пользователь может переназначать почту посылая ее к
альтернативному адресу, используя один из двух методов,
обеспечиваемых smail. Одна опция должна поместить
Forward to recipient,...
в первой строке ее mailbox файла. Это пошлет всей входящей почте
заданному списку получателей. В качестве альтернативы, она могла бы
создавать a .forward файл в ее исходном каталоге, который содержит
отделенный запятой список получателей. С этим разнообразием
пересылки, все строки файла читаются и интерпретируются.
Обратите внимание, что любой тип адреса может использоваться.
Таким образом, практический пример .forward файла мог бы быть
janet, "|vacation"
Первый адрес передает входящее сообщение mailbox janet, в то время
как команда vacation возвращает короткое уведомление отправителю.
15.8.3 Специальные Файлы
Smail способен обработать специальные файлы, совместимые с теми
что известны sendmail Berkeley. Входы в специальном файле могут
иметь форму
alias: recipients
recipients - отделенный запятой список адресов, которые будут
заменяться специально. Список получателей может быть продолжен
через символы перевода строки, если следующая строка начинается с
МЕТКИ ТАБУЛЯЦИИ.
Имеется специальная возможность, которая позволяет smail
обрабатывать списки отправки по почте из специального файла: если
Вы определяете ":include:filename" как получателя, smail будет читать
заданный файл, и применять содержимое как список получателей.
- 280 -
Основной файл побочных результатов исследования - /usr/lib/aliases.
Если Вы сделаете этот файл всемирно - перезаписываемым, smail не
будет передавать сообщения командам оболочки, данным в этом файле.
Типовой файл показывается ниже:
# vbrew.com /usr/lib/aliases file hostmaster: janet
postmaster: janet
usenet: phil
# The development mailing list. development: joe, sue, mark, biff
/var/mail/log/development
owner-development: joe
# Announcements of general interest are mailed to all # of the staff
announce: :include: /usr/lib/smail/staff, /var/mail/log/announce
owner-announce: root
# gate the foobar mailing list to a local newsgroup ppp-list: "|/usr/local/lib/gateit
local.lists.ppp"
Если ошибка происходит при ипользовании адреса,
сгенерированного из специального файла, smail будет пытаться
посылать копию сообщения об ошибках к "специальному владельцу''.
Если адрес владельца не существует, никакое дополнительное
сообщение об ошибках не будет сгенерировано.
15.8.4 Списки Отправки по почте
Вместо того, чтобы использовать специальный файл, чтобы
отправить по почте по списку можно также управляться посредством
файлов в каталоге /usr/lib/smail/lists. Список отправки по почте,
именованный nag-bugs описан как lists/nag-bugs, должен содержать
адреса элементов, отделяемые запятыми. Список может быть дан на
нескольких строках, с комментариями.
Для каждого списка отправки по почте, пользователь именованный
владельцем - listname должен существовать; любое появление ошибок
при применени адреса будет сообщено этому пользователю. Этот адрес
также используется как адрес отправителя на всех исходящих
- 281 -
сообщений в Sender: поле заголовка.
15.9 UUCP-Транспорт
Имеется ряд транспортировщиков, компилируемых в smail, которые
используют UUCP набор программ. В UUCP среде, сообщения обычно
передаются, вызывая rmail на следующем host, давая ему сообщение на
стандартном вводе и адрес конверта в командной строке. На вашем
host, rmail должен быть связан с командой smail.
При вручении сообщения на UUCP транспорт, smail
преобразовывает целевой адрес в путь удара UUCP. Например,
user@host будет преобразован host!user. Любое местонахождение " % "
оператора адреса сохраняется, так что user%host@gateway станет
gateway!User%host. Однако, smail никогда не будет генерировать такие
адреса самостоятельно.
В качестве альтернативы, smail может посылать и получать BSMTP
пакеты через UUCP. В BSMTP один или большее количество
сообщений передаются в одиночном пакете, который содержит
команды, которые локальный mailer выдал бы, если бы реальное SMTP
соединение имело место. BSMTP часто используется с промежуточным
накоплением, чтобы сохранить дисковое пространство. Типовой файл
транспорта в приложении 20.3 содержит транспорт dubbed bsmtp
который генерирует частичные BSMTP пакеты в каталоге очередей.
Они должны быть объединены в конечные пакеты позже, при
использовании команды оболочки, которая добавляет
соответствующую команду HELO и QUIT.
Чтобы давать возможность bsmtp транспорту для специфических
связей UUCP, Вы должны использовать так называемые файлы метода
(пожалуйста обратитесь к smail странице руководства для
подробностей). Если Вы имеете только одну связь UUCP, и используете
программу маршрутизации smart host, Вы даете возможность посылать
SMTP пакеты, устанавливая интеллектуальную транспортную
переменную конфигурации как bsmtp вместо uux.
Чтобы получать SMTP пакеты над UUCP, Вы должны
удостовериться, что Вы имеете команду распакетирования. Если
отдаленный пункт использует smail, Вы должны связать rsmtp с smail.
Если отдаленный пункт выполняет sendmail, Вы должны
дополнительно установить команду оболочки, именованную
- 282 -
/usr/bin/bsmtp, которая делает простой "запуск rsmtp".
15.10 SMTP-Транспорт
Smail в настоящее время поддерживает SMTP драйвер, чтобы
передавать почту по TCP соединениям. Это дает возможность посылки
сообщения любому числу адресов на одиночном host, с hostname,
определяемым или как полностью квалифицированное имя области
которое может быть использовано программным обеспечением работы
с сетями, или в точечной записи четверки, включенной в квадратные
скобки. Вообще, адреса, решенные любым BIND, gethostbyname или
gethostbyaddr драйверов программы маршрутизации будут переданы на
SMTP транспорт.
SMTP драйвер будет пытаться соединяться с отдаленным host
немедленно через smtp порт как перечислено в /etc/services. Если это не
может быть достигнуто, или соединение прерывается, оно будет
повторно предпринято в более позднее время.
Получение на Internet требует, чтобы маршруты до host адресата
были определены в формате адрес-маршрут, описанном в главе 14, а не
как путь удара. smail будет следовательно трансформировать
user%host@gateway, где gateway достигнут через host1!host2!host3, по
адресу исходного маршрута < @host2,@host3:user%host@gateway >,
который будет послан как конверт, адресованный host1. Чтобы давать
возможность этому преобразованию (наряду с встроенным драйвером
BIND), Вы должны редактировать вход для smtp драйвера в файле
transports. Типовой файл transports дан в Приложении 20.3.
15.11 Квалификация Hostname
Иногда желательно захватить неквалифицированные hostname (то
есть те, которые не имеют имени области) заданные в адресе
отправителя или получателя, например при переходе между двумя
сетями, где каждая требует полностью квалифицированных имен
области. На Internet -UUCP реле, такие hostname должны быть
отображены в uucp область по умолчанию. Другие изменения адреса
- 283 -
сомнительны.
Файл /usr/lib/smail/qualify сообщает smail, которая область определяет
путь на который hostname. Входы в файле qualify состоят из hostname в
перевом столбце, сопровождаемым именем области. Строки,
содержащие знак мусора как первый символ рассматриваются
комментариями. Входы ищутся в порядке, в котором они появляются.
Если никакого файла qualify не существует, никакая hostname
квалификация не выполняется вообще.
Специальный hostname * соответствует любому hostname, таким
образом допуская Вам отобразить все главные ЭВМ, не упомянутые
прежде в заданную по умолчанию область. Это должно использоваться
только как последний вход.
В Виртуальном Пивоваренном заводе, все главные ЭВМ были
установлены так, чтобы использовать полностью квалифицированные
имена области в адресах отправителя. Неквалифицированные адреса
получателя, как рассматривается, находятся в uucp области, так что
необходим только одиночный вход в файле qualify.
# /usr/lib/smail/qualify, last changed Feb 12, 1994 by janet
#
* uucp
16. Sendmail + IDA
16.1 Введение в Sendmail + IDA
Уже упоминалось, что Вы не реальный администратор системы
Unix, пока вы не редактировали sendmail.cf файл. Также скажут что вы
сумасшедший, если вы попытаетесь сделать это дважды :-)
Sendmail - невероятно мощная программа. Также невероятно трудно
узнавать и понимать ее для большинства людей. Любая программа, чье
окончательное руководство (Sendmail, изданный O'Reilly and Associatеs)
состоит из 792 страниц, отпугивает большинство людей.
Sendmail + IDA - это другое. Это удаляет потребность редактировать
всегда загадочный sendmail.cf файл и позволяет администратору
определять пункт-специфическую маршрутизацию и конфигурацию
адресации через относительно простые для понимания файлы
- 284 -
поддержки, называемые таблицами. sendmail + IDA может сохранять
Вам много часов работы и спокойствия.
Сравниваясь с другими главными средствами транспорта почты, не
имеется ничего, что не может быть выполнено быстрее и проще с
sendmail + IDA. Типичные вещи, которые необходимы, чтобы
реализовать UUCP или Internet узел, станут простыми для выполнения.
Конфигурации, которые обычно являются чрезвычайно трудными,
просто создавать и поддержать.
В этой запииси, текущая версия sendmail5.67b + IDA1.5 доступен
через анонимный FTP из vixen.cso.uiuc.edu. Она компилируется без
любого внесения исправлений, требуемого под Linux.
Все файлы конфигурации, требуемые, чтобы получить исходники
sendmail + IDA, чтобы компилировать, устанавливать, и выполнять под
управлением Linux включены в newspak-2.2.tar.gz, который является
доступным через анонимный FTP на sunsite.unc.edu в каталоге
/pub/Linux/system/Mail.
16.2 Файлы Конфигурации --- Краткий обзор
Традиционный sendmail установлен через файл конфигурации
системы (обычно /etc/sendmail.cf или /usr/lib/sendmail.cf), который - не
относится к любому языку, который вы видели прежде.
Редактирование sendmail.cf файла, чтобы обеспечить настроенное
поведение может быть хорошим опытом.
Sendmail + IDA делает такую работу по существу делом прошлого
при наличии всех опций конфигурации, с формированием
изображений при помощи таблицы с довольно простым, чтобы понять
синтаксис. Эти опции конфигурируются, выполнением m4
(процессора макркоманд) или dbm (процессора базы данных) в ряде
файлов данных через Make-файлы, обеспеченные исходниками.
Sendmail.cf файл определяет только заданное по умолчанию
поведение системы. Виртуально вся специальная настройка выполнена
через ряд необязательных таблиц а не непосредственно редактируя
sendmail.cf файл.
- 285 -
16.3 Sendmail.cf Файл
Sendmail.cf файл для sendmail + IDA не редактируется
непосредственно, а генерируется из m4 файла конфигурации,
обеспеченного локальным администратором системы. В следующем,
мы обратимся к нему как к sendmail.m4.
Этот файл содержит несколько определений и иначе просто
указывает на таблицы, где выполняется реальная работа. Вообще,
необходимо определить только:
+ Имена путей и имена файлов, используемые в локальной системе.
+ Имена пункта электронной почты.
+ Который заданный по умолчанию mailer (и возможно smart host)
желателен.
Имеется большое разнообразие параметров, которые могут быть
определены, чтобы установить поведение локального пункта сети. Эти
опции конфигурации идентифицированы в файле ida/cf/OPTIONS в
исходном каталоге.
Файл sendmail.m4 для минимальной конфигурации (UUCP или
SMTP со всей не-локальной почтой, передаваемой непосредственно
соединенному smart-host) может быть в 10 или 15 строк, исключая
комментарии.
Mailertable определяет специальное поведение для отдаленных главных
ЭВМ или областей.
Uucpxtable включает получение почты UUCP на главные ЭВМ, которые
находятся в формате DNS.
Pathtable определяет UUCP пути на отдаленные главные ЭВМ или
области.
Uucprelays замыкает pathalias путь на общеизвестные отдаленные
главные ЭВМ.
Genericfrom преобразовывает внутренние адреса в обобщенные,
видимые внешнему миру.
Xaliases преобразовывает обобщенные адреса на\из допустимых
внутренних.
Decnetxtable преобразовывает RFC-822 адреса в адреса DECnet-стиля.
- 286 -
16.3.1 Пример Файла Sendmail.m4
Файл sendmail.m4 для vstout на Виртуальном Пивоваренном заводе
показывается ниже. Vstout использует SMTP, чтобы разговаривать со
всеми главными ЭВМ на LAN Пивоваренного завода, и посылает всю
почту для других адресатов к moria, host реле Internet, через UUCP.
16.3.2 Обычно Используемые sendmail.m4 Параметры
Нескоторые предметы в файле sendmail.m4 требуются всегда; другие
могут игнорироваться, если Вы можете избежать неприятностей со
значениями по умолчанию. Следующие разделы описывают каждые из
предметов в файле sendmail.m4 более подробно.
dnl #------------------ SAMPLE SENDMAIL.M4 FILE ------------------
dnl # (the string 'dnl' is the m4 equivalent of commenting out a line)
dnl # you generally don't want to override LIBDIR from the compiled in paths
dnl #define(LIBDIR,/usr/local/lib/mail)dnl # where all support files go
define(LOCAL MAILER DEF, mailers.linux)dnl # mailer for local delivery
define(POSTMASTERBOUNCE)dnl # postmaster gets bounces
define(PSEUDODOMAINS, BITNET UUCP)dnl # don't try DNS on these
dnl #-------------------------------------------------------------
dnl #
define(PSEUDONYMS, vstout.vbrew.com vstout.UUCP vbrew.com)
dnl # names we're known by
define(DEFAULT HOST, vstout.vbrew.com)dnl # our primary 'name' for
mail
define(UUCPNAME, vstout)dnl # our uucp name
dnl #
dnl #-------------------------------------------------------------
dnl #
define(UUCPNODES, |uuname|sort|uniq)dnl # our uucp neighbors
define(BANGIMPLIESUUCP)dnl # make certain that uucp
define(BANGONLYUUCP)dnl # mail is treated correctly
define(RELAY HOST, moria)dnl # our smart relay host
define(RELAY MAILER, UUCP-A)dnl # we reach moria via uucp
- 287 -
dnl #
dnl #--------------------------------------------------------------------dnl #
dnl # the various dbm lookup tables
dnl #
define(ALIASES, LIBDIR/aliases)dnl # system aliases
define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainize hosts
define(PATHTABLE, LIBDIR/pathtable)dnl # paths database
define(GENERICFROM, LIBDIR/generics)dnl # generic from addresses
define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers per host or
domain
define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # paths to hosts we feed
define(UUCPRELAYS, LIBDIR/uucprelays)dnl # short-circuit paths
dnl #
dnl #--------------------------------------------------------------------dnl #
dnl # include the 'real' code that makes it all work
dnl # (provided with the source code)
dnl #
include(Sendmail.mc)dnl # REQUIRED ENTRY !!!
dnl #
dnl #------------ END OF SAMPLE SENDMAIL.M4 FILE -------
16.3.2.1 Предметы, которые Определяют Пути
dnl #define(LIBDIR,/usr/local/lib/mail)dnl # where all support files go
LIBDIR определяет каталог, где sendmail + IDA ожидает находить
файлы конфигурации, различные dbm таблицы, и специальные
локальные определения. В типичном двоичном распределении, это
компилируется в sendmail binary и не должно быть явно установлено в
файле send-mail.m4.
Вышеупомянутый пример содержит dnl, который означает что эта
строка - по существу только для уточнения инфрмации комментария.
Чтобы изменить расположение файлов поддержки на другое,
удалите dnl из вышеупомянутой строки, установите путь к
желательному расположению, и восстановите, и повторно установите
sendmail.cf файл.
- 288 -
16.3.2.2 Определение Локального Mailer'а
define(LOCAL MAILER DEF, mailers.linux)dnl # mailer for local delivery
Большинство операционных систем обеспечивает программу для
обработки локального получения почты. Программы такого рода для
многих из главных вариантов Unix уже встроены в sendmail binary.
В Linux, необходимо явно определить соответствующий локальный
mailer, так как такая локальная программа не обязательно предоставлена
в распределении, которое вы установили. Это определяется LOCAL
MAILER DEF в файле sendmail.m4.
Например, можно установить LOCAL MAILER DEF как mailers.linux.
Следующий файл должен то быть установлен как mailers.linux в
каталоге, указанном LIBDIR. Это явно определяет программу в Mlocal
mailer с соответствующими параметрами, чтобы sendmail правильно
принимал почту, направленную для локальной системы.
Если Вы не эксперт sendmail, Вы возможно не захотите изменять
следующий пример.
# -- /usr/local/lib/mail/mailers.linux --
# (local mailers for use on Linux )
Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=10, A=sh -c $u
Имеется также встроенное значение по умолчанию для deliver в
Sendmail.mc файле, который включается в файл sendmail.cf. Чтобы
определить его, Вы не должны использовать mailers.linux файл и взамен
определить следующее в вашем файле sendmail.m4:
dnl --- (in sendmail.m4) ---
define(LOCAL MAILER DEF, DELIVER)dnl # mailer for local delivery
К сожалению, Sendmail.mc принимает, что deliver установлен в /bin,
что не так в Slackware1.1.1 (который устанавливает это в /usr/bin). В том
случае вы нуждаетесь в фальшивке со связью или переустановить deliver
из исходников в /bin.
- 289 -
16.3.2.3 Обработка Bounced-почты
define(POSTMASTERBOUNCE)dnl # postmaster gets bounces
Многие абоненты находят, что важно гарантировать, что бы почта
посылалась и получалась с гарантией 100 %. При исследовании sys-logd
файлов регистрации полезен локальный администратор почты чтобы
определить, была ли почта испорчена из-за ошибки пользователя или
ошибки конфигурации на одной из включаемых систем.
Определение POSTMASTERBOUNCE приводит к копии каждого
плохого сообщения человеку, определенному как Постмастер системы.
К сожалению, установка этого параметра также приводит к
рассекречиванию текста сообщения, посылаемого Постмастеру.
16.3.2.4 Возможности Имени Области
define(PSEUDODOMAINS, BITNET UUCP)dnl # don't try DNS on
these
Имеются отдельные известные сети, которые обычно указаны в
адресах почты по историческим причинам, но это не допустимо для
целей DNS. Определение PSEUDODOMAINS предотвращает
бесполезные DNS попытки поиска, которые будут всегда терпеть
неудачу.
16.3.2.5 Определение Локальной Системы
выбирать те, в которых Вы нуждаетесь. Вы описываете их smail в паре
файлов, а именно routers, directors, и transports в /usr/lib/smail. Если эти
файлы не существуют, приняты приемлемые значения по умолчанию.
Если Вы хотите изменить маршрутизацию smail, или изменить
транспорт, Вы должны получить типовые файлы из smail исходного
распределения, скопировать типовые файлы в /usr/lib/smail, и изменять
их согласно вашим потребностям. Типовые файлы конфигурации также
даны в Приложении(аппендиксе) 20.3.
15.7 Маршрутизация Сообщений
Когда дано сообщение, smail проверяет, если адресат - локальный
host, или отдаленный пункт. Если целевой адрес host является одним из
локального hostname, конфигурированного в конфигурации, сообщение
будет передано модулю управления. Иначе, smail вручает адрес ряду
драйверов программы маршрутизации, чтобы выяснить которому host'у
передано сообщение. Они могут быть описаны в файле routers; если
этот файл не существует, используется набор заданных по умолчанию
- 275 -
программ маршрутизации.
Host адресата передается всем программам маршрутизации по
очереди, и находящий наиболее специфический маршрут будет выбран.
Рассмотрите сообщение, адресованное joe@foo.bar.com. Одна
программа маршрутизации могла бы знать заданный по умолчанию
маршрут для всех главных ЭВМ в bar.com области, в то время как другая
имеет информацию для foo.bar.com непосредственно. Если там - две
программы маршрутизации, которые обеспечивают "лучшее
соответствие'', та что раньше в файле программ маршрутизации будет
выбрана.
Эта программа маршрутизации теперь определяет транспорт,
который нужно использовать, например UUCP, и генерирует новый
адрес адресата. Новый адрес передан на транспорт наряду с host. В
вышеупомянутом примере, smail мог бы выяснять, что foo.bar.com
должен быть достигнут через UUCP использование пути ernie!Bert.
Тогда генерируется новая цель из bert!Foo.bar.com!user, и используется
UUCP транспорт, поскольку конверт адресован к ernie.
При использовании заданной по умолчанию установки, следующие
программы маршрутизации доступны:
+ Если, адрес host адресата может быть разрешен, используя
gethostbyname или gethostbyaddr вызов из библиотек, сообщение, будет
передано через SMTP. Единственое исключение - если адрес найден,
чтобы обратиться к локальному host.
Smail также распознает адреса IP, которые пишутся как точечная
четверка, как допустимый hostname, если только они могут быть решены
через gethostbyaddr обращение. Например, scrooge@ [149.76.12.4] был
бы допустим, хотя это необычный почтовый адрес для scrooge на
quark.physics.groucho.edu.
Если ваша машина находится на Internet, эти программы
маршрутизации - не то, что Вы ищете, потому что они не
поддерживают записи MX. См. ниже что делать в этом случае.
+ Если pathalias база данных (/usr/lib/smail/paths) существует, smail пробует
искать целевой host (минус любой конечный .uucp) в этом файле. Почта
к адресу, согласованному этой программой маршрутизации будет
передана используя UUCP, и используя путь, найденный в базе данных.
- 276 -
+ Адрес host (минус любой конечный .uucp) будет сравниваться с
выводом команды uuname, чтобы проверить является ли целевой host
фактически соседом UUCP. Если дело обстоит так, сообщение будет
передан использованием UUCP транспорта.
+ Если, адрес не был согласован любой из вышеупомянутых программ
маршрутизации, он будет передан smart host. Путь smart host также как
транспорт, который нужно использовать установлен в файле
конфигурации.
Эти значения по умолчанию работают для многих простых
установок, но сбоят при более сложной маршрутизации. Если перед
Вами стоит одна из проблем, обсужденных ниже, Вы будет должен
установить ваши собственные программы маршрутизации.
Возможно самые плохие проблемы возникают, когда ваш host живет
в двойной области, и с телефонным вызовом по номеру IP и со связями
UUCP. smail будет пытаться передавать любую почту через SMTP. Это -
обычно не, что Вы хотите, потому что, даже если связь SLIP
активизирована регулярно, SMTP - намного медленнее чем посылка
почты над UUCP. С заданной по умолчанию установкой, не имеется
никакого способа выйти из smail.
Вы можете избегать этой проблемы при наличии проверки файла
путей перед запросом решающего устройства, и помещении всех
необходимых главных ЭВМ в файл путей. Если Вы не хотите посылать
сообщения над SMTP когда-либо, Вы можете также закомментировать
решающие рограммы маршрутизации в целом.
Другая проблема состоит в том, что заданная по умолчанию
установка не обеспечивает истинную маршрутизацию почты Internet,
потому что решающая программа маршрутизации не оценивает записи
MX. Чтобы давать возможность полной поддержке маршрутизации
почты Internet, прокомментируйте эту программу маршрутизации, и
разкомментируйте ту что используется BIND взамен. Имеются, однако,
smail binaries включенные в некоторые распределения Linux, которые не
имеют поддержки BIND. Если Вы даете возможность BIND, но
получаете сообщение в paniclog файле, говорящее "программа
маршрутизации inet hosts: драйвер связи не найден'', тогда Вы должны
получить исходники и перетранслировать smail (см. раздел 15.2 выше).
В заключение, это вообще не очень хорошая идея - использовать
uuname драйвер.
- 277 -
15.7.1 База данных путей
Smail ожидает находить pathalias базу данных в файле путей в
/usr/lib/smail. Этот файл необязателен, так если Вы не хотите выполнять
любой pathalias вообще, просто удалите любой существующий файл
путей.
Paths должен быть сортируемый файл ASCII, который содержит
входы, которые отображают имена пункта адресата UUCP. Файл
должен сортироваться, потому что smail использует двоичный поиск
пункта. Комментарии не позволяются в этом файле, и имя пункта
должно отделиться от пути, используя МЕТКУ ТАБУЛЯЦИИ. Pathalias
базы данных обсуждены подробнее в главе 14 ..
Если Вы генерируете этот файл вручную, Вы должен
удостовериться, чтобы включить все допустимые имена для пункта.
Например, если пункт известен и простым именем UUCP и полностью
квалифицированным именем области, Вы должны добавить вход для
каждого из них. Файл может сортироваться конвейерной пересылкой
его через команду sort.
Если ваш пункт является только пунктом листа, то никакой файл
paths, не должен быть необходим вообще: только установите атрибуты
smart host в вашем файле конфигурации, и оставьте всю маршрутизацию
вашей подаче почты.
15.8 Поставка Сообщений Локальным Адресам
Обычно, локальный адрес - только имя входа в систему
пользователя, когда сообщение передается в его mailbox,
/var/spool/mail/user. Другие случаи включают отправку по почте списка
имен, и пересылку почты пользователем. В этих случаях, локальный
адрес расширяется до нового списка адресов, которые могут быть или
локальны или отдаленны.
Кроме этих "нормальных" адресов, smail может обрабатывать другие
типы локальных адресатов сообщения, подобно именам файла, и
командам трубопровода. Они - не адреса, так что Вы не можете
посылать почте на /etc/passwd@vbrew.com.
- 278 -
Имя файла - что-нибудь, что начинается с наклонной черты вправо
(/) или тильды (~). Письмо относится к исходному каталогу
пользователя, и возможно только, если имя файла принималось из a
.forward файл или вход пересылки в mailbox (см. ниже). При поставке
файла, smail конкатенирует сообщения к файлу, создавая его в случае
необходимости.
Командой трубопровода может быть любая команда Unix, которой
предшествует символ трубопровода (|). Это заставляет smail вручать
команду оболочке наряду с аргументами, но без подачи " | ". Сообщение
непосредственно будет подано этой команде на стандартном вводе.
Например, чтобы отправить почту в локальную newsgroup, Вы
могли бы использовать команду оболочки, именованную gateit, и
устанавливать локальный результат, который передает все сообщения
из этого списка в команду, используя " | gateit ".
Если вызов содержит незаполненное пространство, он должен быть
включен в двойные кавычки. Из-за проблем защиты команда не
выполняется, если адрес был получен несколько сомнительным
способом (например, если файл, из которого адрес принимался, был
перезаписываем каждым).
15.8.1 Локальные Пользователи
Наиболее общий случай для локального адреса - обозначить mailbox
пользователя. Этот mailbox - локализовался /var/spool/mail, и имеет имя
пользователя. Если он не существует, он создан smail.
Обратите внимание, что, хотя /var/spool/mail - в настоящее время
стандартное место, чтобы поместить mailbox файлы, некоторое
программное обеспечение почты может иметь другой paths,
компилируемый в, например /usr/spool/mail.
Имеются два адреса которые требуются smail: mailer - daemon и
Постмастер. При производстве сообщения удара для почты undeliverable,
машинописная копия послана постмастеру объяснение исследования (в
случае, если это могло бы быть из-за проблемы конфигурации). Mailer -
daemon используется как адрес отправителя для сообщения удара.
Если эти адреса не называют допустимые счета на вашей системе,
- 279 -
smail неявно отображает mailer - daemon как postmaser, и постмастера как
root, соответственно. Вы должны обычно отменять это совмещением
имени постмастера с тем, кто является ответственным за поддержание
программного обеспечения почты.
15.8.2 Пересылки
Пользователь может переназначать почту посылая ее к
альтернативному адресу, используя один из двух методов,
обеспечиваемых smail. Одна опция должна поместить
Forward to recipient,...
в первой строке ее mailbox файла. Это пошлет всей входящей почте
заданному списку получателей. В качестве альтернативы, она могла бы
создавать a .forward файл в ее исходном каталоге, который содержит
отделенный запятой список получателей. С этим разнообразием
пересылки, все строки файла читаются и интерпретируются.
Обратите внимание, что любой тип адреса может использоваться.
Таким образом, практический пример .forward файла мог бы быть
janet, "|vacation"
Первый адрес передает входящее сообщение mailbox janet, в то время
как команда vacation возвращает короткое уведомление отправителю.
15.8.3 Специальные Файлы
Smail способен обработать специальные файлы, совместимые с теми
что известны sendmail Berkeley. Входы в специальном файле могут
иметь форму
alias: recipients
recipients - отделенный запятой список адресов, которые будут
заменяться специально. Список получателей может быть продолжен
через символы перевода строки, если следующая строка начинается с
МЕТКИ ТАБУЛЯЦИИ.
Имеется специальная возможность, которая позволяет smail
обрабатывать списки отправки по почте из специального файла: если
Вы определяете ":include:filename" как получателя, smail будет читать
заданный файл, и применять содержимое как список получателей.
- 280 -
Основной файл побочных результатов исследования - /usr/lib/aliases.
Если Вы сделаете этот файл всемирно - перезаписываемым, smail не
будет передавать сообщения командам оболочки, данным в этом файле.
Типовой файл показывается ниже:
# vbrew.com /usr/lib/aliases file hostmaster: janet
postmaster: janet
usenet: phil
# The development mailing list. development: joe, sue, mark, biff
/var/mail/log/development
owner-development: joe
# Announcements of general interest are mailed to all # of the staff
announce: :include: /usr/lib/smail/staff, /var/mail/log/announce
owner-announce: root
# gate the foobar mailing list to a local newsgroup ppp-list: "|/usr/local/lib/gateit
local.lists.ppp"
Если ошибка происходит при ипользовании адреса,
сгенерированного из специального файла, smail будет пытаться
посылать копию сообщения об ошибках к "специальному владельцу''.
Если адрес владельца не существует, никакое дополнительное
сообщение об ошибках не будет сгенерировано.
15.8.4 Списки Отправки по почте
Вместо того, чтобы использовать специальный файл, чтобы
отправить по почте по списку можно также управляться посредством
файлов в каталоге /usr/lib/smail/lists. Список отправки по почте,
именованный nag-bugs описан как lists/nag-bugs, должен содержать
адреса элементов, отделяемые запятыми. Список может быть дан на
нескольких строках, с комментариями.
Для каждого списка отправки по почте, пользователь именованный
владельцем - listname должен существовать; любое появление ошибок
при применени адреса будет сообщено этому пользователю. Этот адрес
также используется как адрес отправителя на всех исходящих
- 281 -
сообщений в Sender: поле заголовка.
15.9 UUCP-Транспорт
Имеется ряд транспортировщиков, компилируемых в smail, которые
используют UUCP набор программ. В UUCP среде, сообщения обычно
передаются, вызывая rmail на следующем host, давая ему сообщение на
стандартном вводе и адрес конверта в командной строке. На вашем
host, rmail должен быть связан с командой smail.
При вручении сообщения на UUCP транспорт, smail
преобразовывает целевой адрес в путь удара UUCP. Например,
user@host будет преобразован host!user. Любое местонахождение " % "
оператора адреса сохраняется, так что user%host@gateway станет
gateway!User%host. Однако, smail никогда не будет генерировать такие
адреса самостоятельно.
В качестве альтернативы, smail может посылать и получать BSMTP
пакеты через UUCP. В BSMTP один или большее количество
сообщений передаются в одиночном пакете, который содержит
команды, которые локальный mailer выдал бы, если бы реальное SMTP
соединение имело место. BSMTP часто используется с промежуточным
накоплением, чтобы сохранить дисковое пространство. Типовой файл
транспорта в приложении 20.3 содержит транспорт dubbed bsmtp
который генерирует частичные BSMTP пакеты в каталоге очередей.
Они должны быть объединены в конечные пакеты позже, при
использовании команды оболочки, которая добавляет
соответствующую команду HELO и QUIT.
Чтобы давать возможность bsmtp транспорту для специфических
связей UUCP, Вы должны использовать так называемые файлы метода
(пожалуйста обратитесь к smail странице руководства для
подробностей). Если Вы имеете только одну связь UUCP, и используете
программу маршрутизации smart host, Вы даете возможность посылать
SMTP пакеты, устанавливая интеллектуальную транспортную
переменную конфигурации как bsmtp вместо uux.
Чтобы получать SMTP пакеты над UUCP, Вы должны
удостовериться, что Вы имеете команду распакетирования. Если
отдаленный пункт использует smail, Вы должны связать rsmtp с smail.
Если отдаленный пункт выполняет sendmail, Вы должны
дополнительно установить команду оболочки, именованную
- 282 -
/usr/bin/bsmtp, которая делает простой "запуск rsmtp".
15.10 SMTP-Транспорт
Smail в настоящее время поддерживает SMTP драйвер, чтобы
передавать почту по TCP соединениям. Это дает возможность посылки
сообщения любому числу адресов на одиночном host, с hostname,
определяемым или как полностью квалифицированное имя области
которое может быть использовано программным обеспечением работы
с сетями, или в точечной записи четверки, включенной в квадратные
скобки. Вообще, адреса, решенные любым BIND, gethostbyname или
gethostbyaddr драйверов программы маршрутизации будут переданы на
SMTP транспорт.
SMTP драйвер будет пытаться соединяться с отдаленным host
немедленно через smtp порт как перечислено в /etc/services. Если это не
может быть достигнуто, или соединение прерывается, оно будет
повторно предпринято в более позднее время.
Получение на Internet требует, чтобы маршруты до host адресата
были определены в формате адрес-маршрут, описанном в главе 14, а не
как путь удара. smail будет следовательно трансформировать
user%host@gateway, где gateway достигнут через host1!host2!host3, по
адресу исходного маршрута < @host2,@host3:user%host@gateway >,
который будет послан как конверт, адресованный host1. Чтобы давать
возможность этому преобразованию (наряду с встроенным драйвером
BIND), Вы должны редактировать вход для smtp драйвера в файле
transports. Типовой файл transports дан в Приложении 20.3.
15.11 Квалификация Hostname
Иногда желательно захватить неквалифицированные hostname (то
есть те, которые не имеют имени области) заданные в адресе
отправителя или получателя, например при переходе между двумя
сетями, где каждая требует полностью квалифицированных имен
области. На Internet -UUCP реле, такие hostname должны быть
отображены в uucp область по умолчанию. Другие изменения адреса
- 283 -
сомнительны.
Файл /usr/lib/smail/qualify сообщает smail, которая область определяет
путь на который hostname. Входы в файле qualify состоят из hostname в
перевом столбце, сопровождаемым именем области. Строки,
содержащие знак мусора как первый символ рассматриваются
комментариями. Входы ищутся в порядке, в котором они появляются.
Если никакого файла qualify не существует, никакая hostname
квалификация не выполняется вообще.
Специальный hostname * соответствует любому hostname, таким
образом допуская Вам отобразить все главные ЭВМ, не упомянутые
прежде в заданную по умолчанию область. Это должно использоваться
только как последний вход.
В Виртуальном Пивоваренном заводе, все главные ЭВМ были
установлены так, чтобы использовать полностью квалифицированные
имена области в адресах отправителя. Неквалифицированные адреса
получателя, как рассматривается, находятся в uucp области, так что
необходим только одиночный вход в файле qualify.
# /usr/lib/smail/qualify, last changed Feb 12, 1994 by janet
#
* uucp
16. Sendmail + IDA
16.1 Введение в Sendmail + IDA
Уже упоминалось, что Вы не реальный администратор системы
Unix, пока вы не редактировали sendmail.cf файл. Также скажут что вы
сумасшедший, если вы попытаетесь сделать это дважды :-)
Sendmail - невероятно мощная программа. Также невероятно трудно
узнавать и понимать ее для большинства людей. Любая программа, чье
окончательное руководство (Sendmail, изданный O'Reilly and Associatеs)
состоит из 792 страниц, отпугивает большинство людей.
Sendmail + IDA - это другое. Это удаляет потребность редактировать
всегда загадочный sendmail.cf файл и позволяет администратору
определять пункт-специфическую маршрутизацию и конфигурацию
адресации через относительно простые для понимания файлы
- 284 -
поддержки, называемые таблицами. sendmail + IDA может сохранять
Вам много часов работы и спокойствия.
Сравниваясь с другими главными средствами транспорта почты, не
имеется ничего, что не может быть выполнено быстрее и проще с
sendmail + IDA. Типичные вещи, которые необходимы, чтобы
реализовать UUCP или Internet узел, станут простыми для выполнения.
Конфигурации, которые обычно являются чрезвычайно трудными,
просто создавать и поддержать.
В этой запииси, текущая версия sendmail5.67b + IDA1.5 доступен
через анонимный FTP из vixen.cso.uiuc.edu. Она компилируется без
любого внесения исправлений, требуемого под Linux.
Все файлы конфигурации, требуемые, чтобы получить исходники
sendmail + IDA, чтобы компилировать, устанавливать, и выполнять под
управлением Linux включены в newspak-2.2.tar.gz, который является
доступным через анонимный FTP на sunsite.unc.edu в каталоге
/pub/Linux/system/Mail.
16.2 Файлы Конфигурации --- Краткий обзор
Традиционный sendmail установлен через файл конфигурации
системы (обычно /etc/sendmail.cf или /usr/lib/sendmail.cf), который - не
относится к любому языку, который вы видели прежде.
Редактирование sendmail.cf файла, чтобы обеспечить настроенное
поведение может быть хорошим опытом.
Sendmail + IDA делает такую работу по существу делом прошлого
при наличии всех опций конфигурации, с формированием
изображений при помощи таблицы с довольно простым, чтобы понять
синтаксис. Эти опции конфигурируются, выполнением m4
(процессора макркоманд) или dbm (процессора базы данных) в ряде
файлов данных через Make-файлы, обеспеченные исходниками.
Sendmail.cf файл определяет только заданное по умолчанию
поведение системы. Виртуально вся специальная настройка выполнена
через ряд необязательных таблиц а не непосредственно редактируя
sendmail.cf файл.
- 285 -
16.3 Sendmail.cf Файл
Sendmail.cf файл для sendmail + IDA не редактируется
непосредственно, а генерируется из m4 файла конфигурации,
обеспеченного локальным администратором системы. В следующем,
мы обратимся к нему как к sendmail.m4.
Этот файл содержит несколько определений и иначе просто
указывает на таблицы, где выполняется реальная работа. Вообще,
необходимо определить только:
+ Имена путей и имена файлов, используемые в локальной системе.
+ Имена пункта электронной почты.
+ Который заданный по умолчанию mailer (и возможно smart host)
желателен.
Имеется большое разнообразие параметров, которые могут быть
определены, чтобы установить поведение локального пункта сети. Эти
опции конфигурации идентифицированы в файле ida/cf/OPTIONS в
исходном каталоге.
Файл sendmail.m4 для минимальной конфигурации (UUCP или
SMTP со всей не-локальной почтой, передаваемой непосредственно
соединенному smart-host) может быть в 10 или 15 строк, исключая
комментарии.
Mailertable определяет специальное поведение для отдаленных главных
ЭВМ или областей.
Uucpxtable включает получение почты UUCP на главные ЭВМ, которые
находятся в формате DNS.
Pathtable определяет UUCP пути на отдаленные главные ЭВМ или
области.
Uucprelays замыкает pathalias путь на общеизвестные отдаленные
главные ЭВМ.
Genericfrom преобразовывает внутренние адреса в обобщенные,
видимые внешнему миру.
Xaliases преобразовывает обобщенные адреса на\из допустимых
внутренних.
Decnetxtable преобразовывает RFC-822 адреса в адреса DECnet-стиля.
- 286 -
16.3.1 Пример Файла Sendmail.m4
Файл sendmail.m4 для vstout на Виртуальном Пивоваренном заводе
показывается ниже. Vstout использует SMTP, чтобы разговаривать со
всеми главными ЭВМ на LAN Пивоваренного завода, и посылает всю
почту для других адресатов к moria, host реле Internet, через UUCP.
16.3.2 Обычно Используемые sendmail.m4 Параметры
Нескоторые предметы в файле sendmail.m4 требуются всегда; другие
могут игнорироваться, если Вы можете избежать неприятностей со
значениями по умолчанию. Следующие разделы описывают каждые из
предметов в файле sendmail.m4 более подробно.
dnl #------------------ SAMPLE SENDMAIL.M4 FILE ------------------
dnl # (the string 'dnl' is the m4 equivalent of commenting out a line)
dnl # you generally don't want to override LIBDIR from the compiled in paths
dnl #define(LIBDIR,/usr/local/lib/mail)dnl # where all support files go
define(LOCAL MAILER DEF, mailers.linux)dnl # mailer for local delivery
define(POSTMASTERBOUNCE)dnl # postmaster gets bounces
define(PSEUDODOMAINS, BITNET UUCP)dnl # don't try DNS on these
dnl #-------------------------------------------------------------
dnl #
define(PSEUDONYMS, vstout.vbrew.com vstout.UUCP vbrew.com)
dnl # names we're known by
define(DEFAULT HOST, vstout.vbrew.com)dnl # our primary 'name' for
define(UUCPNAME, vstout)dnl # our uucp name
dnl #
dnl #-------------------------------------------------------------
dnl #
define(UUCPNODES, |uuname|sort|uniq)dnl # our uucp neighbors
define(BANGIMPLIESUUCP)dnl # make certain that uucp
define(BANGONLYUUCP)dnl # mail is treated correctly
define(RELAY HOST, moria)dnl # our smart relay host
define(RELAY MAILER, UUCP-A)dnl # we reach moria via uucp
- 287 -
dnl #
dnl #--------------------------------------------------------------------dnl #
dnl # the various dbm lookup tables
dnl #
define(ALIASES, LIBDIR/aliases)dnl # system aliases
define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainize hosts
define(PATHTABLE, LIBDIR/pathtable)dnl # paths database
define(GENERICFROM, LIBDIR/generics)dnl # generic from addresses
define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers per host or
domain
define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # paths to hosts we feed
define(UUCPRELAYS, LIBDIR/uucprelays)dnl # short-circuit paths
dnl #
dnl #--------------------------------------------------------------------dnl #
dnl # include the 'real' code that makes it all work
dnl # (provided with the source code)
dnl #
include(Sendmail.mc)dnl # REQUIRED ENTRY !!!
dnl #
dnl #------------ END OF SAMPLE SENDMAIL.M4 FILE -------
16.3.2.1 Предметы, которые Определяют Пути
dnl #define(LIBDIR,/usr/local/lib/mail)dnl # where all support files go
LIBDIR определяет каталог, где sendmail + IDA ожидает находить
файлы конфигурации, различные dbm таблицы, и специальные
локальные определения. В типичном двоичном распределении, это
компилируется в sendmail binary и не должно быть явно установлено в
файле send-mail.m4.
Вышеупомянутый пример содержит dnl, который означает что эта
строка - по существу только для уточнения инфрмации комментария.
Чтобы изменить расположение файлов поддержки на другое,
удалите dnl из вышеупомянутой строки, установите путь к
желательному расположению, и восстановите, и повторно установите
sendmail.cf файл.
- 288 -
16.3.2.2 Определение Локального Mailer'а
define(LOCAL MAILER DEF, mailers.linux)dnl # mailer for local delivery
Большинство операционных систем обеспечивает программу для
обработки локального получения почты. Программы такого рода для
многих из главных вариантов Unix уже встроены в sendmail binary.
В Linux, необходимо явно определить соответствующий локальный
mailer, так как такая локальная программа не обязательно предоставлена
в распределении, которое вы установили. Это определяется LOCAL
MAILER DEF в файле sendmail.m4.
Например, можно установить LOCAL MAILER DEF как mailers.linux.
Следующий файл должен то быть установлен как mailers.linux в
каталоге, указанном LIBDIR. Это явно определяет программу в Mlocal
mailer с соответствующими параметрами, чтобы sendmail правильно
принимал почту, направленную для локальной системы.
Если Вы не эксперт sendmail, Вы возможно не захотите изменять
следующий пример.
# -- /usr/local/lib/mail/mailers.linux --
# (local mailers for use on Linux )
Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=10, A=sh -c $u
Имеется также встроенное значение по умолчанию для deliver в
Sendmail.mc файле, который включается в файл sendmail.cf. Чтобы
определить его, Вы не должны использовать mailers.linux файл и взамен
определить следующее в вашем файле sendmail.m4:
dnl --- (in sendmail.m4) ---
define(LOCAL MAILER DEF, DELIVER)dnl # mailer for local delivery
К сожалению, Sendmail.mc принимает, что deliver установлен в /bin,
что не так в Slackware1.1.1 (который устанавливает это в /usr/bin). В том
случае вы нуждаетесь в фальшивке со связью или переустановить deliver
из исходников в /bin.
- 289 -
16.3.2.3 Обработка Bounced-почты
define(POSTMASTERBOUNCE)dnl # postmaster gets bounces
Многие абоненты находят, что важно гарантировать, что бы почта
посылалась и получалась с гарантией 100 %. При исследовании sys-logd
файлов регистрации полезен локальный администратор почты чтобы
определить, была ли почта испорчена из-за ошибки пользователя или
ошибки конфигурации на одной из включаемых систем.
Определение POSTMASTERBOUNCE приводит к копии каждого
плохого сообщения человеку, определенному как Постмастер системы.
К сожалению, установка этого параметра также приводит к
рассекречиванию текста сообщения, посылаемого Постмастеру.
16.3.2.4 Возможности Имени Области
define(PSEUDODOMAINS, BITNET UUCP)dnl # don't try DNS on
these
Имеются отдельные известные сети, которые обычно указаны в
адресах почты по историческим причинам, но это не допустимо для
целей DNS. Определение PSEUDODOMAINS предотвращает
бесполезные DNS попытки поиска, которые будут всегда терпеть
неудачу.
16.3.2.5 Определение Локальной Системы