Тестирование правил преобразования адресов
3.1.6. Тестирование правил
преобразования адресов
Для тестирования правил
преобразования адресов sendmail
запускают с флагом "-bt" для
того, чтобы тестирование было более
детальным, можно применять и ряд
других флагов.
Пример тестирования набора
правил 0 и его подправил.
% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 0 paul@polyn.kiae.su
rewrite: ruleset 0 input: paul @ polyn . kiae . su
rewrite: ruleset 98 input: paul @ polyn . kiae . su
rewrite: ruleset 98 returns: paul @ polyn . kiae . su
rewrite: ruleset 97 input: paul @ polyn . kiae . su
rewrite: ruleset 3 input: paul @ polyn . kiae . su
rewrite: ruleset 96 input: paul < @ polyn . kiae . su >
rewrite: ruleset 96 returns: paul < @ polyn . kiae . su . >
rewrite: ruleset 3 returns: paul < @ polyn . kiae . su . >
rewrite: ruleset 0 input: paul < @ polyn . kiae . su . >
rewrite: ruleset 98 input: paul < @ polyn . kiae . su . >
rewrite: ruleset 98 returns: paul < @ polyn . kiae . su . >
rewrite: ruleset 90 input: < polyn . kiae . su > paul < @ polyn . kiae . su . >
rewrite: ruleset 90 input: polyn . < kiae . su > paul < @ polyn . kiae . su . >
rewrite: ruleset 90 input: polyn . kiae . < su > paul < @ polyn . kiae . su . >
rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . >
rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . >
rewrite: ruleset 90 returns: paul < @ polyn . kiae . su . >
rewrite: ruleset 95 input: < > paul < @ polyn . kiae . su . >
rewrite: ruleset 95 returns: paul < @ polyn . kiae . su . >
rewrite: ruleset 0 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . >
rewrite: ruleset 97 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . >
rewrite: ruleset 0 returns: $# esmtp $@ polyn . kiae . su . $: paul < @ polyn . kiae . su . >
>
В этом примере четко виден
порядок преобразования. Сначала
производится канонизация имени, а
затем его преобразование в
соответствии с рассылкой. Набор
правил 0 - это набор преобразования
адресов получателей. После него
принимается решение о рассылке
почты.
Чаще всего ошибки встречаются в
наборе правил 3, а точнее в
поднаборе этого набора 96. Здесь
производится канонизация адресов.
Наибольшие проблемы проявляются с
так называемыми фиктивными
доменами, которые не могут быть
разрешены службой доменных имен. В
этом случае происходит, обычно,
расширение имени именем текущего
домена, и, как результат, ошибка при
рассылке. Такие имена либо надо
вносить в список адресов фиктивных
доменов (BITNET или UUCP), либо их
отлавливать и запускать написанные
для них программы рассылки.
В приведенном ниже примере
тестирование адресов производится
с максимальной опцией отладки,
когда указываются не только номера
наборов правил, но и сами
тестируемые правила:
%sendmail -bt -d21.12
>3 paul@polyn.kiae.su
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> rewrite: ruleset 3 input: paul @ polyn . kiae . su
-----trying rule: $@
----- rule fails
-----trying rule: $*
-----rule matches: $: $1 < @ >
rewritten as: paul @ polyn . kiae . su < @ >
-----trying rule: $* < $* > $* < @ >
----- rule fails
-----trying rule: $* : : $* < @ >
----- rule fails
-----trying rule: : include : $* < @ >
----- rule fails
-----trying rule: $* : $* < @ >
----- rule fails
-----trying rule: $* < @ >
-----rule matches: $: $1
rewritten as: paul @ polyn . kiae . su
-----trying rule: $* ;
----- rule fails
-----trying rule: $@
----- rule fails
-----trying rule: $*
-----rule matches: $: < $1 >
rewritten as: < paul @ polyn . kiae . su >
-----trying rule: $+ < $* >
----- rule fails
-----trying rule: < $* > $+
----- rule fails
-----trying rule: < >
----- rule fails
-----trying rule: < $+ >
-----rule matches: $: $1
rewritten as: paul @ polyn . kiae . su
-----trying rule: @ $+ , $+
----- rule fails
-----trying rule: @ $+ : $+
----- rule fails
-----trying rule: $+ : $* ; @ $+
----- rule fails
-----trying rule: $+ : $* ;
----- rule fails
-----trying rule: $+ @ $+
-----rule matches: $: $1 < @ $2 >
rewritten as: paul < @ polyn . kiae . su >
-----trying rule: $+ < $+ @ $+ >
----- rule fails
-----trying rule: $+ < @ $+ >
-----rule matches: $@ $> 96 $1 < @ $2 >
-----callsubr 96
rewrite: ruleset 96 input: paul < @ polyn . kiae . su >
-----trying rule: $* < @ localhost > $*
----- rule fails
-----trying rule: $* < @ localhost . net . kiae . su > $*
----- rule fails
-----trying rule: $* < @ localhost . UUCP > $*
----- rule fails
-----trying rule: $* < @ [ $+ ] > $*
----- rule fails
-----trying rule: $* < @ @ $=w > $*
----- rule fails
-----trying rule: $* < @ @ $+ > $*
----- rule fails
-----trying rule: $* < @ $+ . UUCP > $*
----- rule fails
-----trying rule: $* < @ $* $~P > $*
-----rule matches: $: $1 < @ $[ $2 $3 $] > $4
rewritten as: paul < @ polyn . kiae . su . >
-----trying rule: $* < @ $=w > $*
----- rule fails
-----trying rule: $* < @ $* $=P > $*
-----rule matches: $: $1 < @ $2 $3 . > $4
rewritten as: paul < @ polyn . kiae . su . . >
-----trying rule: $* < @ $* . . > $*
-----rule matches: $1 < @ $2 . > $3
rewritten as: paul < @ polyn . kiae . su . >
-----trying rule: $* < @ $* . . > $*
----- rule fails
-----trying rule: $* < @ quest . net . kiae . su > $*
----- rule fails
rewrite: ruleset 96 returns: paul < @ polyn . kiae . su . >
rewritten as: paul < @ polyn . kiae . su . >
rewrite: ruleset 3 returns: paul < @ polyn . kiae . su . >
>96 paul@polyn.kiae.su
> rewrite: ruleset 96 input: paul @ polyn . kiae . su
-----trying rule: $* < @ localhost > $*
----- rule fails
-----trying rule: $* < @ localhost . net . kiae . su > $*
----- rule fails
-----trying rule: $* < @ localhost . UUCP > $*
----- rule fails
-----trying rule: $* < @ [ $+ ] > $*
----- rule fails
-----trying rule: $* < @ @ $=w > $*
----- rule fails
-----trying rule: $* < @ @ $+ > $*
----- rule fails
-----trying rule: $* < @ $+ . UUCP > $*
----- rule fails
-----trying rule: $* < @ $* $~P > $*
----- rule fails
-----trying rule: $* < @ $=w > $*
----- rule fails
-----trying rule: $* < @ $* $=P > $*
----- rule fails
-----trying rule: $* < @ $* . . > $*
----- rule fails
-----trying rule: $* < @ quest . net . kiae . su > $*
----- rule fails
rewrite: ruleset 96 returns: paul @ polyn . kiae . su
>
Правила в данном случае
указываются по их левой части и для
правильного понимания необходимо
иметь и тот фрагмент файла
конфигурации sendmail, который
тестируется.
Интерфейс mail
Самая простая и самая
распространенная программа
подготовки и отправки почты - это
программа mail или ее аналог mailx. Для
большинства современных
пользователей mail покажется
архаизмом времен, когда
полноэкранные и графические
интерфейсы еще не были даже
задуманы. Однако, попробовать mail
имеет смысл, т.к. ограничения mail на
размер файлов не столь жесткие как
в полноэкранных интерфейсах типа bml
и принцип работы программы более
прозрачен, чем принципы работы ее
современных аналогов. Для отправки
почты самому себе следует набрать
следующую строку:
mail paul
В качестве paul укажите свой
почтовый адрес. В ответ программа
выдаст предложение ввести
сообщение:
Subject:
Если это тестовое сообщение,
лучше всего ввести слово "test".
Теперь программа перейдет на
следующую строку и будет ждать
текста сообщения. Следует учесть,
что при редактировании в mail можно
использовать только стирание
стоящей перед курсором буквы и
только в пределах текущей строки.
Если пользователь нажал клавишу
Enter, то весь текст выше текущей
строки недоступен для
редактирования. Пусть сообщение
будет состоять из одной фразы:
This is a test message.
Для завершения ввода сообщения
следует нажать Cntrl+D, что означает
конец ввода. После этого сообщение
будет отправлено. Окончить ввод
сообщения можно и другим способом -
ввести строку, которая содержит
только символ "." в первой
позиции.
Прочитать его можно выполнив
программу mail без аргумента:
mail
В этом случае на экране появится
что-то вроде:
Mail version 5.5 6/1/90. Type ? for help
"/var/mail/paul": 1 message 1 new
>N 1 paul Sun Feb 5 15:21 11/246
&
Первая строка указывает на версию
программы, вторая строка
показывает место почтового ящика
пользователя и количество
сообщений в нем, при этом
указывается отдельно число новых
сообщений. Третья строка - это
начало списка полученных почтовых
сообщений. Буква "N" в начале
строки указывает на то, что это
новое сообщение, "1" - номер по
порядку в почтовом ящике, paul - адрес
отправителя, "Sun Feb 5 15:21" - дата и
время отправки сообщения,
"11/246" - указывает на число
строк в сообщении и число байтов,
которые составляют сообщение. Для
просмотра сообщения следует просто
нажать Enter. На экране появится:
Message 1:
From paul Sun Feb 5 15:21:57 1995
Date: Sun, 5 Feb 95 15:21:57 -0700
From: paul
To: paul
Subject: test
This is a test message.
&
Как можно заметить, текст
сообщения содержит дополнительную
информацию, которая была добавлена
программами рассылки и называется
заголовком почтового сообщения.
Заголовок отделен от сообщения
пустой строкой. Из заголовка можно
понять, кто и когда отправил
сообщение.
Фактически, mail без аргументов
просматривает почтовый ящик
пользователя. Если в нем находятся
другие сообщения, отличные от
тестового сообщения пользователя,
то это значит, что к пользователю
пришла почта от других
пользователей сети, или программ.
Для прекращения просмотра
сообщений, следует после знака
"&" ввести символ "q".
Для отправки файла программой mail
следует указать этот файл в
качестве файла стандартного ввода:
mail paul < file.in
В этом случае файл будет
немедленно отправлен адресату.
Следует заметить, что от системы к
системе синтаксис команды mail может
незначительно меняться. Так, в
системе HP/UX 9.0, mail не предлагает
ввести тему сообщения, аналогично
ведет себя mail и системе BSDI/386 0.9.
Однако mailx из HP/UX 9.0 практически
аналогична mail из BSDI/386 0.9. В любом
случае имеет смысл обратиться к
руководству по командам
операционной системы.
Важным моментом при
использовании mail является его
использование в качестве фильтра:
uuencode test.exe test.exe | mail paul@quest.polyn.kiae.su
В приведенном выше примере
бинарный файл test.exe предварительно
кодируется программой uuencode в файл
ASCII, а затем отправляется
пользователю paul на машине
quest.polyn.kiae.su.
Рассмотрим теперь более
современные интерфейсы подготовки
почтовых сообщений bml и elm. Обе эти
программы подготовки почты
работают в режиме полноэкранных
интерфейсов.
Интерфейс bml
Программа bml является стандартной
для абонентов сети Relcom. Она входит в
комплект версии для пользователей
MS-DOS и имеется во многих Unix-системах
сети. Для лучшей наглядности лучше
обратиться к рисунку 3.4.
Рис. 3.4.
Экран в bml делится на три части:
- верхняя часть экрана занята
падающими меню, позволяющими
редактировать, просматривать и
отправлять почту;
- в средней части экрана
расположено рабочее поле
программы, в котором
отображается список
полученных сообщений и
осуществляется редактирование
посылаемых сообщений;
- в нижней части экрана
расположено вспомогательное
меню функциональных клавиш.
При запуске программы в рабочем
поле отображаются полученные
сообщения, первое из которых
выделено цветом. Выделенное цветом
сообщение - это текущее сообщение.
При этом рабочее поле разбито на
четыре столбца. В первом столбце
указывается адрес отправителя, во
втором - дата и время получения, в
третьем - число строк и символов в
сообщении, четвертый столбец - тема
сообщения. Для просмотра сообщения
надо при помощи клавиш-стрелок
сделать интересующее пользователя
сообщение текущим и нажать Enter. В
рабочем поле экрана появится текст
сообщения (рисунок 3.5).
Рис. 3.5.
Для редактирования и подготовки
сообщений следует воспользоваться
режимами Create Mail и Edit mail из падающего
меню Mail (рисунок 3.6).
Рис. 3.6.
Для перехода в падающее меню
используется функциональная
клавиша F9. Для отправки сообщения
из режима редактирования следует
нажать ALT+T или выйти в меню Post. При
отправке почты следует заполнить
специальную форму (рисунок 3.7).
Bml предоставляет еще ряд
возможностей, облегчающих прием,
просмотр и отправку почты
(поддерживает список часто
используемых адресов, посылку
сообщений в телеконференции Usenet,
автоматическую вставку двоичных
файлов в формате uuencode и их
автоматическое извлечение из
полученных сообщений и ряд других).
В целом, следует признать, что bml
является достаточно удобным
персональным средством работы с
почтой.
Рис. 3.7.
Интерфейс elm
Наиболее распространенной
программой работы с почтой в
Unix-системах является программа elm.
Elm также, как и bml, является
полноэкранным почтовым
интерфейсом. Запуск программы
осуществляется по команде elm:
elm
На экране появляется сообщение о
версии системы, список полученных
сообщений и список команд, которыми
может воспользоваться
пользователь. Следует обратить
внимание на то, что некоторые
версии elm способны подстраиваться
под размер экрана автоматически.
Пример экрана elm представлен на
рисунке 3.8.
Рис. 3.8.
Нажимая клавиши "j" и "k",
можно перемещаться вверх и вниз по
списку полученных сообщений, а при
нажатии клавиши Enter пользователь
переходит к просмотру полученного
сообщения. Для реализации других
возможностей elm пользователь
вводит в командной строке после
слова "Command:" соответствующую
букву, например, для отправки
сообщения следует ввести букву
"М". Вслед за этим появится
приглашение ввести адрес
получателя, тему письма и возможных
дополнительных адресатов. Затем elm
вызовет внешний редактор (обычно vi).
После того, как пользователь
завершил редактирование письма и
вышел из редактора, elm еще раз
удостоверяется в том, что письмо
следует отправить по указанному
адресу и, если получает
подтверждение, то отправляет его.
При работе c elm следует обратить
внимание на тот факт, что при
выполнении команды delete, письма
реально не удаляются, а только
помечаются как удаленные. Реальная
очистка почтового ящика происходит
только при выходе из программы и
только по подтверждению
пользователя.
Интерфейс Eudora
Интерфейс Eudora является одним из
множества почтовых интерфейсов,
ориентированных на работу с почтой
Internet из системы MS-Windows. На примере
этого интерфейса мы рассмотрим
типичные проблемы, которые
возникают у пользователей
персональных компьютеров при
подключении к почтовому сервису
Internet, и пути их решения.
Первой проблемой является тот
факт, что компьютер выключается из
сети на время отсутствия
пользователя. Это значит, что в это
время прием почтовых сообщений не
производится. Следовательно, вся
почта должна хранится на почтовом
сервере и получаться пользователем
по его запросу. При работе с Unix об
этом заботится программа sendmail, в
MS-Windows такой программы нет (точнее
есть, но она не ориентирована на
Internet). Поэтому обычно применяется
следующая схема (рисунок 3.9):
Рис. 3.9. Схема работы с
почтовым сервером из-под MS-Windows и
MS-DOS
Такая схема предполагает, что
пользователь имеет почтовый ящик
на машине-сервере, которая не
выключается круглосуточно. Все
почтовые сообщения складываются в
этот почтовый ящик. По мере
необходимости, пользователь из
своего почтового клиента
обращается к почтовому ящику и
забирает из него пришедшую на его
имя почту. При отправке
программа-клиент обращается
непосредственно к серверу рассылки
почты и передает отправляемые
сообщения на этот сервер для
дальнейшей рассылки.
На рисунке 3.10 приведен экран Eudora,
на котором представлено меню
настройки и два почтовых ящика:
принятых писем и отправленных
писем.
На этом рисунке в меню настроек
хорошо виден POP Account - адрес
пользователя на машине-сервере,
SMTP-сервер и POP (Ph) сервер. Как видно
из настроек, Eudora каждые 30 минут
проверяет почтовый ящик
пользователя и сообщает о
получении новых писем. Кроме того,
что Eudora позволяет читать просто
письма в обычном почтовом формате
Internet (RFC822), о котором пойдет речь в
следующем параграфе, она
распознает и новый формат,
ориентированный на отображение
мультимедийных почтовых сообщений
MIME, который последнее время
становится все более популярен в
Internet.
Рис. 3.10. Интерфейс Eudora
для MS-Windows
Для установки этого интерфейса
требуются определенные знания и
доступ к информации, которой
располагает только системный
администратор, поэтому
предпочтительней обратиться
именно к нему с просьбой об
установке программы или за
необходимой информацией (адреса
машин серверов). Работа с Eudora
чрезвычайно проста: надо выбирать
при помощи мыши или клавиатуры
интересующие вас сообщения и
отправлять в "корзину" то, что
бесполезно.
И последнее замечание
относительно работы из под MS-Windows с
почтой в Internet. Если пользователь
пишет только по-английски, то у него
нет проблем с кодировкой и набором
текста, но если он пишет по-русски и
получает такие же сообщения, то
сразу же возникают проблемы. Дело в
том, что большинство почтовых сетей
для обмена данными между серверами
используют кодировку KOI8. Эта
кодировка отличается как от
кодировки для MS-DOS, так и от
кодировки MS-Windows. Поэтому,
возвращаясь к иллюстрации с
настройками интерфейса Eudora,
хочется обратить внимание читателя
на поля "Send Font" и "Printer Font".
В этих полях указан шрифт
"Arial-Relcom", который разложен по
кодировке KOI8, и используется для
отображения и печати почтовых
сообщений. Для того, чтобы
правильно набирать сообщения,
следует к стандартным раскладкам
клавиатуры в драйвере клавиатуры
(cyrwin, например) добавить раскладку
для KOI8.
При этом драйвер должен уметь
менять раскладку по мере
необходимости. В противном случае у
пользователя будет возможность
читать сообщения, но не набирать их.
Назад | Содержание | Вперед
|