Реферат: Программное обеспечение почтового обмена - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Программное обеспечение почтового обмена

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 286 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Программное обеспечение почтового обмена Согласно схеме почтового о бмена (рисунок 2.1) взаимодействие между участниками этого обмена строится по классической схеме "клиент-сервер ". При этом схему можно подразделить на несколько этапов . Первый - взаимодействие по протоколу SMTP между почтовым клиентом (Internet Mail, Nets c ape Messager, Eudora и т.п .) и почтовым транспортным агентом (sendmail, smail, ntmail и т.п .), второй - взаимодействие между транспортными агентами в процессе доставки почты получателю , результатом которого является доставка почтового сообщения в почтовый ящик пользователя и третий - выборка сообщения из почтового ящика пользователя почтовым клиентом в почтовый ящик пользователя на машине пользователя по протоколу POP3 или IMAP Программа Sendmail Основным средством рассылки почты в Internet является програм ма sendmail . Она обеспечивает работу модульной системы рассылки , которая предназначена для получения и отправки корреспонденции , а также управления программами подготовки и просмотра почтовых сообщений . Sendmail позволяет организовать почтовую службу локал ьной сети и обмениваться почтой с другими серверами почтовых служб через специальные шлюзы . Sendmail может быть сконфигурирована для работы с различными почтовыми протоколами . Обычно это протоколы UUCP (Unix-Unix-CoPy) и SMTP (Simple Mail Transfer Protocol ). Sendmail работает как "отделение связи " обычной почтовой службы , которое принимает и пересылает почтовые сообщения . Sendmail может интерпретировать два типа почтовых адресов : · почтовые адреса SMTP; · почтовые адреса UUCP. Первые являются стандартны ми адресами Internet и , фактически , являются стандартом де-факто . Именно этот адрес обычно указан на визитных карточках . Sendmail можно настроить для поддержки : · списка адресов-синонимов ; · списка адресов рассылки пользователя ; · автоматической рассыл ки почты через шлюзы ; · очередей сообщений для повторной рассылки почты в случае отказов при рассылке ; · работы в качестве SMTP-сервера ; · доступа к адресам машин через сервер доменных имен BIND; · доступа к внешним серверам имен . Принцип работы прогр аммы sendmail Sendmail отправляет почту в два приема : сначала почтовые сообщения собираются в очереди , а затем отсылаются . Каждое сообщение состоит из трех частей : конверта , заголовка и тела сообщения . Конверт . Конверт состоит из адреса отправителя , адр еса получателя и информации рассылки , которая используется программами подготовки , рассылки и получения почты . Конверт остается невидимым для отправителя и получателя почтового сообщения . Заголовок . Заголовок состоит из стандартных текстовых строк , которы е содержат адреса , информацию о рассылке и данные . Заголовок может быть частью подготовленного пользователем текстового файла , а может быть подготовлен и добавлен к телу сообщения программой подготовки почты . Данные из заголовка могут быть использованы дл я оформления конверта сообщения . Тело сообщения. Первая пустая строка в файле почтового сообщения отделяет заголовок от тела сообщения . Все , что следует после этой строки , называется телом сообщения и передается по почте без изменений . Sendmail может быть вызвана : · программой подготовки сообщений для отправки уже подготовленных сообщений ; · программой получения почты для пересылки полученной из сети почты ; · непосредственно пользователем для отправки по почте файла или короткого сообщения ; · почтовым демоном , которым обычно является сама sendmail. После того , как почта собрана , начинается ее рассылка . При этом выполняются следующие действия : · адреса отправителя и получателя преобразуются в формат сети-получателя почты ; · если необходимо , то в загол овок сообщения добавляются строки , позволяющие получателю отвечать на принятое сообщение (например : FROM: <адрес >); · почта передается одной из программ рассылки почты . На рисунке 3.1 представлена схема функционирования почтового сервера на базе программ ы sendmail. Когда программа приема почты получает сообщение , она передает его программе sendmail для последующей рассылки . Если сообщение достигло машины адресата , то оно отправляется программой местной рассылки в почтовый ящик пользователя . Первый этап рассылки - сбор сообщений . Sendmail получает почтовые сообщения из трех источников : · командной строки или стандартного ввода ; · через SMTP-протокол (из сети ); · из очереди сообщений . При получении сообщений из командной строки или стандартного ввода , sendmail вызывается пользователем с указанием адреса доставки сообщения . При этом выполняются следующие действия : определяется адрес отправителя , выбирается из командной строки адрес получателя и оба адреса преобразуются в соответствии с описанием файла к о нфигурации , определяется способ доставки сообщения , размещается заголовок в оперативной памяти для последующих преобразований , а тело сообщения размещается во временном файле для отправки без изменений . При получении сообщений по протоколу SMTP, sendmail используется как программа клиента и сервера протокола . Протокол определен в RFC-821 и является основным для рассылки почты в Internet. В этом случае sendmail запускается как демон , который "слушает " порт TCP и в случае получения сообщения устанавливает с о единение с удаленным клиентом SMTP. Как правило , таким клиентом является другая программа sendmail. Программа подготовки почты на локальной машине также может использовать SMTP. Для этого sendmail открывает канал (pipe) межпроцессного обмена . При получен ии сообщений из очереди используются временные файлы очередей . Эти очереди используются для хранения неразосланных сообщений . Сообщение хранится в двух файлах . В одном файле хранится тело сообщения , а в другом конверт и заголовок сообщения . Обычно sendmai l опрашивает очереди через определенные администратором почтового сервера промежутки времени , на предмет наличия в них неразосланных сообщений . Рис . 3.1. Схема почтового взаимодействия на базе программы Sendmail Вторая стадия рассылки почты - рассылка сообщений . Как только одним из описанных выше способов sendmail получила соо бщение , делается попытка его отправить по адресу . Для этого sendmail определяет три параметра : программу рассылки , узел сети и получателя . Эта процедура производится по правилам , которые содержатся в файле конфигурации . Sendmail сохраняет одну копию тела с ообщения во временном файле , а заголовок загружает в оперативную память . Для каждого сообщения программа доставки (рассылки ) сообщений вызывается отдельно . Если сообщение должно быть доставлено на разные машины , то для каждой из машин также вызывается сво я программа доставки . Некоторые программы могут обслуживать сразу несколько абонентов одной машины , если это невозможно , то для каждого абонента вызывается также своя программа доставки . Рассматривают два типа рассылки : на удаленную машину и местную рассыл к у . Рассылка на удаленную машину . Для вызова программы рассылки sendmail открывает pipe и запускает программу рассылки , командная строка которой находится в файле конфигурации . Sendmail записывает заголовок и тело сообщения в pipe. Если программа рассылки не использует протокол SMTP, то адрес получателя передается через pipe. Если используется SMTP, то открывается двунаправленный канал для интерактивного взаимодействия с удаленным сервером SMTP. Если в качестве транспортного протокола используется TCP, то s endmail не запускает внешнюю программу рассылки , а сама инициирует TCP-соединение с удаленным сервером SMTP. Доставка местной почты . Если sendmail определяет , что адреса доставки местные , то происходит обращение к файлу адресных синонимов и производится п реобразование адресов (расширение ). Файл адресных синонимов можно использовать для перенаправления почты в файлы или для обработки местными программами . Пользователь может иметь и свой собственный файл адресных синонимов для управления рассылкой персональ н ой почты . После преобразования адресов почта отправляется программе местной рассылки (например rmail). Важным моментом при работе sendmail является алгоритм определения типа адресов . При использовании стандартного файла конфигурации применяются следующие правила : почта рассылается в соответствии с форматом адреса получателя , адреса при этом бывают местные , UUCP и SMTP. Местные адреса имеют вид : user user@localhost user@localhost.localdomain user@alias user@alias.localdomain user@[local.host.interne t.address] localhost!user localhost!localhost!user user@localhost.uucp Местный адрес - это адрес , который распознается как адрес машины , с которой осуществляется отправка почты . Адреса UUCP имеют вид : host!user host!host!user user@host.uucp Если ма шина , с которой отправляется почта , имеет прямую линию связи по протоколу UUCP со следующей машиной (в адресе ), то почта передается на эту машину , если такого соединения нет , то почта не рассылается и выдается сообщение об ошибке . Файл конфигурации должен содержать детальное описание маршрутов для пересылки сообщений на машины по протоколу UUCP. Адреса SMTP - это адреса , описанные в стандарте RFC-822 или стандартные адреса Internet. Эти адреса имеют вид : usr@host usr@host.domain <@host1,@host2,@host3:u ser@host4> user@[remote.host`s.internet.address] Почта с адресами SMTP рассылается по протоколу SMTP. Если в системе для адресации используется Berkeley Internet Name Domain (BIND) сервер , то sendmail может определять адреса получателей , используя сервис BIND. Если BIND не используется , то sendmail сама определяет адреса . При рассылке почты можно использовать и смешанную адресацию : user%hostA@hostB - почта отправляется с машины hostB на машину hostA user!hostA@hostB - почта отправляется с машины hostB на машину hostA hostA!user%hostB - почта отправляется с hostA на hostB Подводя итог обсуждению принципов работы sendmail, следует специально подчеркнуть тот факт , что почта реально рассылается двумя принципиально разными способами . При использовании прот окола UUCP почта рассылается по принципу "stop-go", т.е . сообщения передаются от машины к машине по указанному в адресе пути . Следует ясно представлять , если почта ушла с машины отправителя , то это не означает , что она поступит получателю . Промежуточная м а шина может вернуть почту назад , если не сможет разослать . Электронная почта действительно работает как система обычной почты , физически перемещая и храня сообщения на промежуточных почтовых станциях . При работе по протоколу SMTP почта реально отправляется только тогда , когда установлено интерактивное соединение с программой-сервером на машине-получателе почты . При этом происходит обмен командами между клиентом и сервером протокола SMTP в режиме on-line. При смешанной адресации доставка почты происходит по с мешанному сценарию . Как шла доставка и как маршрутизировалось сообщение можно определить из заголовка сообщения , которое вы получили . Анализ типа адресов в программе sendmail - это самый главный процесс , т.к . по типу адреса получателя sendmail определяет каким способом сообщение будет разослано . Вызов программы доставки вмонтирован в правила преобразования адресов отправителя и получателя . При этом как только система решит , что дальнейшее преобразование адреса нецелесообразно , так сразу вызывается програм м а доставки . Наибольшее число сообщений об ошибках при рассылке сообщений связано как раз с определением адреса получателя . В этом процессе принимают участие , по крайней мере , два сервиса Internet: система рассылки почтовых сообщений и служба доменных имен. Sendmail постоянно обращается к службе доменных имен на предмет канонизации имен электронной почты сверяет эти имена с теми , которые закреплены за компьютером , на котором данная система установлена . Если имена совпадают , то осуществляется местная рассылк а по адресам местной почты . Настройка программы sendmail Настройка программы sendmail происходит при помощи файла /etc/sendmail/conf. Этот файл можно разбить на несколько частей : · Описание особенностей данной машины (local information) - в данной секции описываются такие параметры , как имя данной машины , имя UUCP и т.п . · Описание макроопределений sendmail , отвечающих за работу в локальной сети , например , имя домена и "официальное имя " машины . · Описание классов , т.е . групп имен , которые используются пр ограммой для рассылки почты . Например , для рассылки в другие почтовые службы . · Номер версии файла конфигурации . Данная переменная должна изменяться каждый раз , как только в файл конфигурации вносятся какие-либо изменения . · Внутренние макроопределения sendmail . В данном разделе присваиваются значения переменным , которые sendmail использует при взаимодействии с другими транспортными агентами . · Опции команды sendmail . Опции определяют режимы работы программы . Опции можно задавать в виде параметров кома ндной строки , а можно в виде описаний в файле настройки . · Определение порядка сообщений программы sendmail (Precedence). Обычно эта секция не модифицируется администратором . · Доверенные пользователи . В данной секции описываются пользователи , которым ра зрешено переписывать адреса отправителей , т.е . выступать не под тем адресом , который за ними закреплен . · Описание формата заголовка почтового сообщения . В данной секции определяются поля и их формат , которые отображаются в заголовке . Многие поля заголовк а sendmail генерирует на основе информации из конверта почтового сообщения . · Правила преобразования адресов . Это самая большая часть файла конфигурации программы sendmail. Преобразование адресов необходимо для принятия программой решений о пути рассылки почтовых сообщений , т.к . это решение принимается на основе полученного в результате преобразований почтового адреса . · Описание программ рассылки . В данной секции описываются имена программ рассылки , пути и параметры командной строки этих программ . Обычно это программа местной рассылки , рассылка по UUCP, рассылка по SMTP, рассылка на выполнение . · Общий набор правил преобразования адресов , который не меняется от машины к машине и от конфигурации к конфигурации (Rule Set 0). · Машинно-зависимая часть обще го правила преобразования адресов . В данной секции содержание определяется способом рассылки почты . Например , данная секция при рассылке по SMTP будет отличаться от случая рассылки по UUCP. В большинстве случаев все изменения , которые приходиться внести в файл конфигурации , касаются только имени машины , домена и машин шлюзов в другие почтовые службы . Однако , если у организации имеется достаточно продолжительная и славная история использования электронной почты , то может оказаться , что для нормального функ ц ионирования придется произвести и ряд более существенных изменений . В целом все описанные выше секции решают три основных задачи : · определение окружения sendmail, · анализ и преобразование адресов электронной почты , · рассылка сообщений при помощи про грамм рассылки . При редактировании файла следует учитывать некоторые правила , которые используются при написании файла конфигурации : вся информация локального характера сосредоточена в начале файла , команды одного типа собраны в компактные группы , большую часть файла составляют правила преобразования адресов , в конце файла описаны программы рассылки электронной почты . Все команды , которые используются в файле настроек sendmail можно представить в виде следующей таблицы : Команда Синтаксис Назначение Define Macro Dxvalue Установить значение "x" Define Class Сс word1 word2 ... Установить значение класса "c" Define Class Fcfile загрузить значение класса из файла Set Option Oovalue Установить значение опции "o" Trusted Users Tuser1 user2 ... Опред елить доверенных пользователей Set Precedence Pname=number Для номера ошибки number установить имя name Define Mailer Mname,[field=value] Определить программу рассылки почты Define Header H[?mflag?]name:format Определить формат поля заголовка Set Rulset Sn Начать определение набора правил преобразования адресов Define Rule Rlhs rhs comment Определить правило преобразования адреса Формат команды файла настроек sendmail не очень удобен для чтения . В целом его можно определить следующим образо м : Рис . 3.2. Структура команды файла настроек sendmail Теперь разберем б олее подробно некоторые команды и секции файла настроек sendmail. Лучше всего это сделать на основе реального файла . Начнем с секции описания локальных параметров : ################## # local info # ################## Cwlocalhost CP. # UUCP relay host DYucbvax.Berkeley.EDU CPUUCP # BITNET relay host #DBmailhost.Berkeley.EDU DBrelay.kiae.su CPBITNET # "Smart" relay host (may be null) DSrelay.kiae.su # who I send unqualified names to (null means deliver locally) DR # who get s all local email traffic ($R has precedence for unqualified names) DH # who I masquerade as (null for no masquerading) DM # class L: names that should be delivered locally, even if we have a relay # class E: names that should be exposed as from this host, even if we masquerade #CLroot CEroot # operators that cannot be in local usernames (i.e., network indicators) CO @ % ! # a class with just dot (for identifying canonical names) C.. # dequoting map Kdequote dequote Как видно из этого листинга , в данной секции описаны имя данной машины (Cwlocalhost), а также класс машин-шлюзов в другие почтовые системы (CP....). При этом наращивание класса происходит по мере описания шлюза для каждого из видов почтовых служб . В конце секции описаны символы , кото р ые не могут использоваться в качестве имен пользователей или доменов . Следующая секция - определение макросов sendmail : ###################### # Special macros # ###################### # SMTP initial login message De$j Sendmail $v/$Z ready at $b # UNIX initial From header format DlFrom $g $d # my name for error messages DnMAILER-DAEMON # delimiter (operator) characters Do.:%@!^/[] # format of a total name Dq$?x$x <$g>$|$g$. # Configuration version number DZ8.6.6 В данной секции описаны сообщения , которые выдает sendmail при взаимодействии с другими транспортными агентами . Как видно из этого описания , определение макроса это не только присваивание значения , но и выполнение определенных действий . Наиболее интересное предложение из всех - предложение , определяющее значение макроса q: Dq$?x$x <$g>$|$g$. Здесь описана условная подстановка значения . Все предложение можно описать следующей фразой : "Если значение переменной x установлено , то : q = значение _x <значение _g>, иначе : q=значение _g". То же самое можно записать и по-другому : if(x!=NULL) strcpy(q,x); strcat(q," <"); strcat(q,g); strcat(q,">"); else strcpy(q,g); В данном случае $? соответствует оператору if , $| - else , а $. - конец условного оператора . Следующая секция - это определение опций : ############### # Options # ############### # strip message body to 7 bits on input? #O7False # Insist that the BIND name server be running to resolve names OI # deliver MIME-encapsulated error mes sages? OjTrue В данном случае приведен только фрагмент этой секции . Большинство параметров общие для всех установок sendmail. Указанные же в листинге параметры являются принципиальными с точки зрения режимов работы sendmail. Первый параметр определяет тот факт , что по почте можно пересылать семибитовую информацию . Согласно RFC-822 информация должна быть семибитовая , но для передачи кириллицы это значит использовать кодирование , что абсолютно не приемлемо . Поэтому данный параметр должен быть закоментарен . В системах , где используется сервер доменных имен , опция I (OI) должна быть установлена , чтобы не было ошибок при идентификации доменов . Последний параметр не является принципиальным , но для целей более понятного представления его следует установить . Если п очтовый клиент не поддерживает MIME, то данный параметр следует закоментарить . Следующие две секции определяют уровень сообщений об ошибках и доверенных пользователей : ########################### # Message precedence # ########################### Pfirst-class=0 Pspecial-delivery=100 Plist=-30 Pbulk=-60 Pjunk=-100 ##################### # Trusted users # ##################### Troot Tdaemon Tuucp За этими двумя секциями следует секция описания полей заголовка почтового сообщения , который генерируется программой sendmail: ######################### # Format of headers # ######################### H?P?Return-Path: $g HReceived: $?sfrom $s $.$?_($?s$|from $.$_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for $u$.; $b H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $q H?F?From: $q H?x?Full-Name: $x HSubject: # HPosted-Date: $a # H?l?Received-Date: $b H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.$i@$j> Формат команд данной секции определяет какие поля включаются в загол овок , а какие не включаются . Данная секция тесно связана с секцией определения программ рассылки почты . Если после H нет знака вопроса , то поле включается в заголовок сообщения для любой программы рассылки , если после H символ "?" присутствует , то в строк е аргументов программы рассылки данный флаг должен быть определен для того , чтобы данное поле было включено в заголовок . Как следует из приведенного выше описания , всегда включаются только поля Received и Subject. Все перечисленные поля не являются обязате л ьными полями заголовка . Следующая секция - правила преобразования адресов . Но прежде чем обсуждать ее содержание следует сказать как и когда sendmail эти адреса преобразовывает . Прежде всего необходимо рассмотреть схему преобразования (рисунок 3.3). Рис . 3.3. Правила При получении почтового сообщения адреса , указанные в пол ях To, From, Cc, преобразуются в соответствии с правилами преобразования . ###################################################################### ###################################################################### ##### ##### REWRITING RULES #### # ###################################################################### ###################################################################### ########################################### ### Rulset 3 - Name Canonicalization ### ################### ######################## S3 # handle null input (translate to <@> special case) R$@ $@ <@> # basic textual canonicalization -- note RFC733 heuristic here R$*<$*>$*<$*>$* $2$3<$4>$5 strip multiple <> <> R$*<$*<$+>$*>$* <$3>$5 2-level <> nesting R$*<>$* $@ <@> MAIL FROM:<> case R$*<$+>$* $2 basic RFC821/822 parsing # handle list:; syntax as special case R$*:;$* $@ $1 :; <@> # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later R@ $+ , $+ @ $1 : $2 change all "," to ":" # localize and dispose of route-based addresses R@ $+ : $+ $@ $>96 < @$1 > : $2 handle # find focus for list syntax R $+ : $* ; @ $+ $@ $>96 $1 : $2 ; < @ $3 > list syntax R $+ : $* ; $@ $1 : $2; list syntax # find focus for @ syntax addresses R$+ @ $+ $: $1 < @ $2 > focus on domain R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right R$+ < @ $+ > $@ $>96 $1 < @ $2 > already canonical # do some sanity checking R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs # convert old-style addresses to a domain-based address R$- ! $+ $@ $>96 $2 < @ $1 .UUCP > resolve uucp names R$+ . $- ! $+ $@ $>96 $3 < @ $1 . $2 > domain uucps R$+ ! $+ $@ $>96 $2 < @ $1 .UUCP > uucp subdomains # if we have % s igns, take the rightmost one R$* % $* $1 @ $2 First make them all @s. R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>96 $1 < @ $2 > Insert < > and finish # else we must be a local name ######################################## ######## ### Ruleset 96 - bottom half of ruleset 3 ### ################################################ # At this point, everything should be in a "local_part<@domain>extra" format. S96 # handle special cases for local names R$* < @ localhost > $ * $: $1 < @ $j . > $2 no domain at all R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d] R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr # pass UUCP addresses straight through R$* < @ $+ . UUCP > $* $@ $1 < @ $2 . UUCP . > $3 # pass to name server to make hostname canonical R$* < @ $* $~P > $* $: $1 < @ $[ $2 $3 $] > $4 # local host aliases and pseudo-domains are always canonical R$* < @ $=w > $* $: $1 < @ $2 . > $3 R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4 R$* < @ $* . . > $* $1 < @ $2 . > $3 # if this is the local hostname, make sure we treat is as canonical R$* < @ $j > $* $: $1 < @ $j . > $2 ################################################## ### Ruleset 4 - Final Output Post-rewriting ### ################################################## S4 R$*<@> $ @ $1 handle <> and list:; # strip trailing dot off possibly canonical name R$* < @ $+ . > $* $1 < @ $2 > $3 # externalize local domain info R$* < $+ > $* $1 $2 $3 defocus R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 canonical R@ $* $@ @ $1 ...and exit # UUCP must always be presented in old form R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u # delete duplicate local names R$+ % $=w @ $=w $1 @ $j u%host@host => u@host ############################################################## ### Ruleset 97 - recanonicalize and call ruleset zero ### ### (used for recursive calls) ### ############################################################## S97 R$* $: $>3 $1 R$* $@ $>0 $1 ###################################### ### Ruleset 0 - Parse Address ### ###################################### S0 R<@> $#local $: <> special case error msgs R$* : $* ; $#error $@ USAGE $: "list:; syntax illegal for recipient addresses" R<@ $+> $#error $@ USAGE $: "user address required" R<$* : $* > $#error $@ USAGE $: "colon illegal in host name part" # handle numeric address spec R$* < @ [ $+ ] > $* $: $>98 $1 < @ [ $2 ] > $3 numeric internet spec R$* < @ [ $+ ] > $* $#smtp $@ [$2] $: $1 < @ [$2] > $3 still numeric: send # now delete the local info -- note $=O to find characters that cause forwarding R$* < @ > $* $@ $>97 $1 user@ => user R< @ $=w . > : $* $@ $>97 $2 @here:... -> ... R$* $=O $* < @ $=w . > $@ $>97 $1 $2 $3 ...@here -> ... # handle local hacks R$* $: $>98 $1 # short circuit local delivery so forwarded email works R$+ < @ $=w . > $: $1 < @ $2 . @ $H > first try hub R$+ < $+ @ $+ > $#local $: $1 yep .... R$+ < $+ @ > $#local $: @ $1 nope, local address # resolve remotely connected UUCP links (if any) # resolve fake top level domains by forwarding to other hosts R$*<@$+.BITNET.>$* $: $>95 < $B > $1 <@$2.BITNET.> $3 user@host.BITNET # forward non-local UUCP traffic to our UUCP relay R$*<@$*.UUCP.>$* $: $>95 < $Y > $1 <@$2.UUCP.> $3 u ucp mail # pass names that still have a host to a smarthost (if defined) R$* < @ $* > $* $: $>95 < $S > $1 < @ $2 > $3 glue on smarthost name # deal with other remote names R$* < @$* > $* $#smtp $@ $2 $: $1 < @ $2 > $3 user@host.domain # if this is quoted, strip the quotes and try again R$+ $: $(dequote $1 $) strip quotes R$+ $=O $+ $@ $>97 $1 $2 $3 try again # handle locally delivered names R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names ########################################################################### ### Ruleset 5 - special rewriting after aliases have been expanded ### ### (new sendmail only) ### ########################################################## ################# S5 # see if we have a relay or a hub R$+ $: < $R > $1 try relay R< > $+ $: < $H > $1 try hub R< > $+ $@ $1 nope, give up R< $- : $+ > $+ $: $>95 < $1 : $2 > $3 < @ $2 > R< $+ > $+ $@ $>95 < $1 > $2 < @ $1 > ######## ########################################################### ### Ruleset 95 - canonify mailer:host syntax to triple ### ################################################################### S95 R< > $* $@ $1 strip off null relay R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer R< $=w > $* $@ $2 delete local host R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer ################################################################### ### Ruleset 98 - local part of ruleset zero (can be null) ### ################################################################### S98 За секцией преобразования адресов следует секция определения программ рассылки почты . В ней определяется локальная программа рассылки (mail), программа рассылки для выполнения (sh) и программа рассылки по SMTP. ################################################## ### Local and Program Mailer specification ### ################################################## M local, P=/usr/libexec/mail.local, F=lsDFMrmn, S=10, R=20/40, A=mail -d $u Mprog, P=/bin/sh, F=lsDFMeu, S=10, R=20/40, D=$z:/, A=sh -c $u S10 R<@> $n errors to mailer-daemon R$+ $: $>40 $1 S20 R$+ < @ $* > $: $1 strip host part S40 ##################################### ### SMTP Mailer specification ### ##################################### Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, A=IPC $h Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n, L=990, A=IPC $ h Mrelay, P=[IPC], F=mDFMuXa, S=11/31, R=61, E=\r\n, L=2040, A=IPC $h Затем идут правила определения локального преобразования адресов для конкретных программ рассылки , в частности набор правил S11. # envelope sender and masquerading recipient rewr iting # S11 R$+ $: $>51 $1 sender/recipient common R$* :; <@> $@ $1:; list:; special case R$* $@ $>61 $1 qualify unqual'ed names В секции программ рассылки мы в нашем примере не указали еще одну важную возможность - рассылку по протоколу UUCP: М uucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, A=uux - -r -z -a$f -gC $h!rmail Естественно , что правила преобразования адресов S13 и R23 должны быть описаны в файле настроек sendmail. Тестирование обслуживания по протоколу SMTP Для про верки сервиса SMTP применяют программу telnet, запущенную по порту 25: citmgu> telnet server.citmgu.ru 25 В этом случае система отвечает строкой приглашения протокола SMTP, после чего можно вводить команды SMTP и проверять реакцию системы на них : # tel net citmgu.ru 25 Trying 194.85.135.66... Connected to citmgu.ru. Escape character is '^]'. 220 cit-u.citmgu.ru ESMTP Sendmail 8.8.5/8.8.5; Mon, 30 Jun 1997 09:45:55 GMT help 214-This is Sendmail version 8.8.5 214-Topics: 214- HELO EHLO MAIL RCPT DATA 214- RSET NOOP QUIT HELP VRFY 214- EXPN VERB ETRN DSN 214-For more info use "HELP ". 214-To report bugs in the implementation send email to 214- sendmail-bugs@sendmail.org. 214-For local information send email to Postmaster at your site. 214 End of HELP info MAIL FROM: paul 250 paul... Sender ok RCPT TO: paul 250 paul... Recipient ok DATA 354 Enter mail, end with "." on a line by itself This is a test message . 250 JAA24836 Message accepted for delivery quit 221 cit-u.citmgu.ru closing connection Connection closed by foreign host. You have new mail. # В приведенном здесь сеансе сначала пользователь выдал команду help и получил список команд , которые можно ис пользовать при взаимодействии по протоколу SMTP. Затем пользователь выдал команду MAIL FROM: для указания адреса отправителя почтового сообщения . После этого выдана команда RCPT TO: , и указан адрес получателя почтового сообщения . Команда DATA открывает воз можность ввода почтового сообщения , т.е . клиент из режима командной строки переходит в режим редактирования сообщения . Редактировать можно только в пределах одной строки путем затирания символом забоя предварительно набитых символов . Вернуться на строку в ы ше нельзя . Конец режима редактирования обозначается символом "." в первой позиции строки . После этого клиент возвращается в режим командной строки , а сообщение отсылается . Совершенно очевидно : что за один сеанс можно отправить несколько сообщений как одно м у и тому же адресату , так и разным адресатам на одном и том же компьютере . Посылать сообщения можно через другую машину , если в качестве адреса получателя указать что-либо подобное ниже приведенному : paul%quest.polyn.kiae.su@citmgu.ru В этом случае сообщ ение отправляется на citmgu.ru, а затем оно будет переправлено на quest.polyn.kiae.su. Тестирование по протоколу POP3 ормально , взаимодействие по протоколу POP3 можно разделить на две фазы : фазу аутентификации и фазу обмена данными . В фазе аутентификации пользователь должен сообщить свой идентификатор и пароль . Если аутентификация была произведена успешно , то система позволяет работать с домашним ящиком пользователя . Сам протокол POP3 очень похож на SMTP с той только разницей , что сообщения можно принимат ь но нельзя отправлять . Приведем пример взаимодействия по протоколу POP3: quest> telnet quest.net.kiae.su Trying 144.206.130.138... Connected to quest.net.kiae.su. Escape character is '^]'. +OK QPOP (version 2.2) at quest.net.kiae.su starting. <1 0124.867839706@quest.net.kiae.su> user paul +OK Password required for paul. pass Kukuru23432 +OK paul has 6 messages (12576 octets). stat +OK 6 12576 list +OK 6 messages (12576 octets) 1 1447 2 2640 3 2296 4 1100 5 3025 6 2068 . noop +OK last +OK 4 is the last read message. retr 4 +OK 1100 octets Received: from mail1.relcom.ru (mail1.relcom.ru [193.125.152.4]) by quest.net.kiae.su (8.7.5/8.7.3) with ESMTP id CAA09628 for ; Wed, 2 Jul 1997 02:51:43 +0400 ( MSD) Received: from thevni (uucp@localhost) by mail1.relcom.ru (8.7.5.R.ML.S/Relcom-2A) with UUCP id BAA03544 for paul;Wed, 2 Jul 1997 01:34:45 +0400 (MSD) Received: by Relay1.relcom.ru (UUMAIL/2.0); Wed, 2 Jul 97 01:34:44 +0300 Received: by theo r.vniinm.msk.su (UUPC/@ v5.06gamma, 07Feb93); Wed, 2 Jul 1997 01:24:57 +0400 To: paul@kiae.su References: <33B92C6B.9FA2C1A4@kiae.su> Message-Id: Organization: A.A. Bochvar Institute for Inorganic Materials, Theoret From: "Alexander Z. Solontsov" Date: Wed, 2 Jul 97 01:24:56 +0400 X-Mailer: BML [MS/DOS Beauty Mail v.1.36] Subject: life Lines: 9 X-UIDL: 2313051b98ef9 08dceefe8b801d9e60d Status: RO To: N.M.Sergeeva Dear H.M., I am still alive, publishing a lot, and this year applied to RAN. Would be pleased to hear from you in a more derect way. Alexander . dele 4 +OK Message 4 has been deleted. rs et 4 -ERR Too many arguments for the rset command. rset +OK Maildrop has 6 messages (12576 octets) list +OK 6 messages (12576 octets) 1 1447 2 2640 3 2296 4 1100 5 3025 6 2068 . quit +OK Pop server at quest.net.kiae.su signing off. Connection closed by foreign host. В данном примере используется все тот же прием доступа к серверу через программу Telnet по 110 порту TCP. В начале выдаются команды фазы аутентификации user и pass. Затем выдается команда stat, которя сообщает статус почт ового ящика пользователя paul. По команде list система сообщает число сообщений и их размер в байтах . По команде retr можно получить текст сообщения . По команде dele пометить сообщение к удалению . Удаляются сообщения только в момент окончания сеанса , а во время сеанса они только помечаются как удаленные , поэтому по команде rset эти пометки можно снять . Команда Quit завершает сеанс работы с сервером . Протокол IMAP Другим протоколом разбора почты является протокол IMAP (Interactive Mail Access Protocol), кот орый по своим возможностям очень похож на POP3, но был разработан как более надежная альтернатива последнего и к тому же обладает более широкими возможностями по управлению процессом обмена с сервером . Работа протокола осуществляется по 143 потру TCP. Гла вным отличием от POP является возможность поиска нужного сообщения и разбор заголовков сообщения . Ниже приведен пример взаимодействия по протоколу IMAP OK IMAP2 Server Ready A001 LOGIN Fred Secret A001 OK User Fred logged in A002 SELECT INBOX * FLAG S (Meeting Notice \Answered \Flagged \Deleted \Seen) * 19 Exists * 2 Recent * A002 OK Select compete A003 FETCH 1:19 ALL * 1 Fetch ( ..... * 19 Fetch (.... A003 OK Fetch complete A004 LOGOUT * Bye IMAP2 server quitting A004 OK Logout complete Для поиска информации используются команды FIND с различными аргументами . Тестирование отправки почты программой Sendmail - флаг "-v" Для того чтобы убедится , что почта уходит туда куда вы предполагаете можно , запустить sendmail из командной строки в так наз ываемом verbowse режиме , т.е . когда диалог между транспортными агентами (двумя программами sendmail) трассируется на экране монитора или записывается в файл . Некоторые грубые ошибки в настройке sendmail можно таким образом установить , например зацикливани е при локальной рассылке . % sendmail -v paul@citmgu.ru Test . paul@citmgu.ru... Connecting to local... paul@citmgu.ru... Sent % sendmail -v paul@quest.net.kiae.su Test . paul@quest.net.kiae.su... Connecting to quest.net.kiae.su. via esmtp... 220 quest.net.kiae.su ESMTP Sendmail 8.7.5/8.7.3; Mon, 30 Jun 1997 11:36:31 +040 0 (MSD) >>> EHLO cit-u.citmgu.ru 250-quest.net.kiae.su Hello [194.85.135.66], pleased to meet you 250-EXPN 250-8BITMIME 250-SIZE 250-DSN 250-VERB 250-ONEX 250 HELP >>> MAIL From: SIZE=5 250 ... Sender ok >>> RCPT To: 250 Recipient ok >>> 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 -b t 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 < @ polyn . kiae . su > rewrite: ruleset 96 returns: paul < @ polyn . kiae . su . > rew rite: 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: rule set 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 . > rewri te: 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 . > rewri te: 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
> 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 : $* < @ > ----- rul e 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 fai ls -----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 f ails -----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 позволяет читать просто письма в обычном почтовом формате Int e rnet (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. При это м драйвер должен уметь менять раскладку по мере необходимости . В противном случае у пользователя будет возможность читать сообщения , но не набирать их .
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Скоро зима... Птички полетят на юг, зайки сменят шубку...
Надо уточнить у любимого: я зайка или птичка?!..
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Программное обеспечение почтового обмена", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru