25843-1 (Программное обеспечение почтового обмена), страница 4
Описание файла
Документ из архива "Программное обеспечение почтового обмена", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "25843-1"
Текст 4 страницы из документа "25843-1"
>>> DATA
354 Enter mail, end with "." on a line by itself
>>> .
250 LAA07168 Message accepted for delivery
paul@quest.net.kiae.su... Sent (LAA07168 Message accepted for delivery)
Closing connection to quest.net.kiae.su.
>>> QUIT
221 quest.net.kiae.su closing connection
%
В этом примере сначала тестируется локальная рассылка, а затем проверяется удаленная рассылка почты. Если бы на локальной машине существовал скрытый цикл, то программа выдала бы предупреждение о возможных ошибках в файле конфигурации sendmail. Однако чаще всего эти ошибки связаны с настройками named, а не sendmail.
Тестирование правил преобразования адресов
Для тестирования правил преобразования адресов sendmail запускают с флагом "-bt" для того, чтобы тестирование было более детальным, можно применять и ряд других флагов.
Пример тестирования набора правил 0 и его подправил.
% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter
> 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
rewrite: ruleset 96 returns: paul
rewrite: ruleset 3 returns: paul
rewrite: ruleset 0 input: paul
rewrite: ruleset 98 input: paul
rewrite: ruleset 98 returns: paul
rewrite: ruleset 90 input: paul
rewrite: ruleset 90 input: polyn . paul
rewrite: ruleset 90 input: polyn . kiae . paul
rewrite: ruleset 90 returns: paul
rewrite: ruleset 90 returns: paul
rewrite: ruleset 90 returns: paul
rewrite: ruleset 95 input: paul
rewrite: ruleset 95 returns: paul
rewrite: ruleset 0 returns: $# esmtp $@ polyn . kiae . su . $: paul
rewrite: ruleset 97 returns: $# esmtp $@ polyn . kiae . su . $: paul
rewrite: ruleset 0 returns: $# esmtp $@ polyn . kiae . su . $: paul
>
В этом примере четко виден порядок преобразования. Сначала производится канонизация имени, а затем его преобразование в соответствии с рассылкой. Набор правил 0 - это набор преобразования адресов получателей. После него принимается решение о рассылке почты.
Чаще всего ошибки встречаются в наборе правил 3, а точнее в поднаборе этого набора 96. Здесь производится канонизация адресов. Наибольшие проблемы проявляются с так называемыми фиктивными доменами, которые не могут быть разрешены службой доменных имен. В этом случае происходит, обычно, расширение имени именем текущего домена, и, как результат, ошибка при рассылке. Такие имена либо надо вносить в список адресов фиктивных доменов (BITNET или UUCP), либо их отлавливать и запускать написанные для них программы рассылки.
В приведенном ниже примере тестирование адресов производится с максимальной опцией отладки, когда указываются не только номера наборов правил, но и сами тестируемые правила:
%sendmail -bt -d21.12
>3 paul@polyn.kiae.su
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter
> 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: $:
rewritten as:
-----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
rewritten as: paul
-----trying rule: $+
----- rule fails
-----trying rule: $+
-----rule matches: $@ $> 96 $1
-----callsubr 96
rewrite: ruleset 96 input: paul
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
-----rule matches: $: $1 $4
rewritten as: paul
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
-----rule matches: $: $1 $4
rewritten as: paul
-----trying rule: $* $*
-----rule matches: $1 $3
rewritten as: paul
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
rewrite: ruleset 96 returns: paul
rewritten as: paul
rewrite: ruleset 3 returns: paul
>96 paul@polyn.kiae.su
> rewrite: ruleset 96 input: paul @ polyn . kiae . su
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- rule fails
-----trying rule: $* $*
----- 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 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.