Технология электронной почты. Технология обмена файлами (FTP)

  • Научно-исследовательская работа
  • Образовательные программы
  • Повышение квалификации
  • Подготовка к тестированию
  • docx
  • 14.02.2017
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Обмен файлами Интернет предоставляет большие возможности по совместному использованию и обмену файлами. Кроме обмена файлами по электронной почте наиболее популярными сейчас являются технологии Direct Connect (DC++), Bittorrent, FTP • Direct Connect (DC++) • BitTorrent и торрент трекеры • FTP-серверы Файлы, которые вы можете скачать в сети, размещаются пользователями и могут содержать вредоносный код (вирусы, трояны). Никогда не запускайте файлы, скачанные из интернета, без предварительной проверки антивирусной программой.
Иконка файла материала Технология электронной почты.docx
Технология электронной почты. Технология обмена файлами (FTP) Обмен файлами Интернет предоставляет большие возможности по совместному использованию и обмену  файлами. Кроме обмена файлами по электронной почте наиболее популярными сейчас являются  технологии Direct Connect (DC++), Bittorrent, FTP  Direct Connect (DC++)  BitTorrent и торрент трекеры  FTP­серверы Файлы, которые вы можете скачать в сети, размещаются пользователями и могут  содержать вредоносный код (вирусы, трояны). Никогда не запускайте файлы,  скачанные из интернета, без предварительной проверки антивирусной  программой. Антивирусные программы в максимальной защите могут блокировать и/или  ограничивать работу многих файлообменных программ. Поэтому, если что­то не  работает, стоит ознакомиться со справкой по антивирусу. Direct Connect (DC++) Direct Connect (DC++) это файлообменная система, одна из популярных в мире. Ее суть  в следующем: на компьютер ставится специальная программа (DC­клиент), в которой  указывается, какие папки сделать «общими», после чего онa подключается к общему  серверу (Хабу) в локальной сети, и через сервер позволяет увидеть другие компьютеры  подключенные к нему. Выглядит это так: после запуска Вы попадаете в окно мини­чата, чем­то напоминающее  IRC­чат, в котором видите активных в настоящий момент пользователей. Кликнув по  любому пользователю, Вы получаете список файлов и каталогов, открытых этим  человеком, и скачиваете то, что Вам нужно. Кроме того, в системе есть возможность поиска файлов у всех пользователей по  ключевому слову, докачка недокаченных файлов и многопоточная загрузка одного файла  с нескольких компьютеров, если все они обладают одинаковым файлом.Другие особенности:  развитый чат  возможность получить список файлов пользователя в виде древовидной структуры  папок  возможность скачивать целые папки с файлами Для подключения к хабу необходимо: 1. Зарегистрироваться на хабе 2. Скачать и настроить DC­клиента Мы рекомендуем использовать DC­клиент FlyLinkDC. Скачать его можно с сайта http://www.flylinkdc.ru Настроить программу рекомендуем по следующей инструкции: Настройка DC­клиента 3. Расшарить (открыть для общего доступа) минимум информации В пределах нашей локальной сети размещен DC­хаб, скачка на котором бесплатна для  абонентов «Реутов­Телеком». Также для наших абонентов доступны бесплатные DC­хабы в сетях наших партнеров. Эти хабы доступны из локальной сети, без выхода во внешний  интернет. Кроме того, есть множество интернет­хабов, скачка с которых оплачивается по  существующим тарифам. Адреса локальных хабов DC++  DC хаб сети «Реутов — Телеком» — dchub://10.251.253.4:4111  Адреса других доступных хабов вы узнаете по адресу: http://www.reutov.ru/local Полезные ссылки: Русскоязычное сообщество пользователей DC++ BitTorrent BitTorrent (букв. англ. «битовый поток») — система распространения объемных  файлов в сети. Принцип работы состоит в том, что файлы передаются не целиком, а частями, причём  каждый торрент­клиент (специальная программа), получая (закачивая) эти части, в это жевремя отдаёт (подкачивает) их другим торрент­клиентам, что снижает нагрузку и  зависимость от каждого клиента­источника и обеспечивает избыточность данных. Первоначальный обладатель файла генерирует специальный файл с расширением .torrent,  который содержит информацию об адресе владельца в интернете, имени и размере  нужного файла, а также его хэш­код (контрольные суммы сегментов). Файлы с расширением .torrent обычно выкладываются на BitTorrent­трекерах. BitTorrent­трекер — специальный веб­сервер, осуществляет координацию торрент­ клиентов. Трекер нужен для того, чтобы клиенты могли найти друг друга, он «связывает»  клиентов друг с другом, но напрямую не участвует в обмене данными раздаваемых  файлов. Чтобы скачать нужный файл торрент­клиент подсоединяется к трекеру, скачивает файл с расширением.torrent. Трекер получает адрес клиента и хеш­сумму запрашиваемого файла, клиент в ответ получает адреса других клиентов, скачивающих или раздающих этот же  файл. Далее клиент периодически информирует трекер о ходе процесса и получает  обновлённый список адресов. Клиенты соединяются друг с другом и обмениваются сегментами файлов без  непосредственного участия трекера, который лишь регулярно обновляет информацию о  подключившихся к обмену клиентах и другую статистическую информацию. Для  эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов  были способны принимать входящие соединения. Самым популярным российским BitTorrent­трекером является Rutracker.org,  насчитывающий свыше трёх с половиной миллионов зарегистрированных учётных записей. На трекере зарегистрировано более 500 тысяч раздач, суммарный размер которых  составляет более 750 терабайт. Ретрекер Для пользователей «Реутов­Телеком» запущен официальный ретрекер от самого  популярного трекера Рунета http://rutracker.org. Использование ретрекера позволяет обмениваться файлами на повышенной скорости,  используя внутреннюю адресацию локальной сети, находить абонентов из «своей» сети,  что, в конечном итоге, значительно ускоряет обмен данными. Кроме того, использование  ретрекера снижает нагрузку на магистральные каналы связи за счет того, что абонентам  не нужно скачивать по отдельности одни и те же данные.Чтобы начать пользоваться rutracker.org вам нужно проделать следующие шаги: 1. Зарегистрироваться на rutracker.org 2. Скачать и установить специальную программу торрент­клиент Мы рекомендуем uTorrent Скачать его можно с сайта http://www.utorrent.com Инструкция по настройке на сайте http://rutracker.org 3. Зайти на rutracker.org, найти нужный файл и скачать его торрент­файл 4. Открыть полученный торрент­файл с помощью торрент­клиента 5. Далее следуйте инструкциям rutracker.org: Как качать Как создать и оформить раздачу Полезные ссылки: FAQ Torrents.ru Что такое BitTorrent FTP­сервера FTP­сервер — компьютер, который содержит общедоступные файлы и настроен на  поддержку протокола FTP. Протокол FTP (File Transfer Protocol — протокол передачи файлов) — один из старейших протоколов передачи информации в сети Интернет. Главное назначение протокола FTP — это пересылать (копировать, передавать) файлы с удаленного компьютера на локальный  компьютер, и наоборот. Файлы на серверах FTP хранятся в древовидной структуре каталогов, точно так же, как и  на вашем компьютере. В настоящее время функции FTP доступны и через обычные браузеры, однако мы  рекомендуем использовать специальные клиентские программы для доступа к крупным  архивам файлов в сети.FTP­клиент — это сервисная программа, с помощью которой можно произвести  соединение с FTP сервером. Обычно эта программа имеет командную строку, но  некоторые имеют оконный интерфейс и не требуют запоминания команд. Рекомендуем использовать: CuteFTP, Go!Zilla, ReGet, FarManager, Total Commander и т.д. Для наших абонентов доступны бесплатные файловые архивы в сетях наших партнеров.  Эти архивы доступны из локальной сети, без выхода во внешний интернет. Адреса локальных FTP серверов Адреса доступных FTP­серверов вы узнаете на сайте компании по  адресу http://www.reutov.ru/local 1. Введение В сознании большинства пользователей глобальной компьютерной сети Internet сама эта  сеть ассоциируется с тремя основными информационными технологиями:  электронная почта (e­mail);  файловые архивы FTP;  World Wide Web. Каждая из этих технологий направлена на решение одной из множества задач  информационного обслуживания пользователей сети. Электронная почта ­ это основное средство коммуникаций Internet. Трудно себе  представить пользователя сети, который не знал бы как отправить или получить  корреспонденцию от своего коллеги с другого конца света. Несмотря на бурное развитие  интерактивных систем коммуникаций, систем реального времени, различных Internet­ телефонов и видеофонов, место электронной почты среди других информационных  технологий Internet прочно и нерушимо. Сеть Internet развивалась в первые свои годы как государственная. Это значит, что  главным ее назначением был свободный обмен информацией. Доступность Internet из  высших учебных заведений только способствовала этой тенденции. Если электронная  почта ­ это основное средство коммуникаций, то основным способом обмена  программным обеспечением и регламентными материалами в Internet стали FTP­архивы.  Это только в последнее время Internet стала высокоскоростной информационной  магистралью. Долгое время канал со скоростью 9600 бит/с был быстрым каналом связи. В  этом легко убедиться, стоит только внимательно почитать файлы настройки терминалов вОС Unix (termcap). Для работы по этим каналам связи и были разработаны такие  протоколы как Telnet и FTP. Упоминание этих двух протоколов вместе здесь не случайно. Telnet и FTP ­ это отличный пример комплексного решения проблемы. Все управление  (сеанс связи и выдача команд) происходит при обмене файлами по протоколу Telnet и  только собственно обмен файлами использует специальный канал передачи данных,  который определен в спецификации протокола FTP (File Transfer Protocol). В настоящее время назначение FTP­архивов существенно расширилось. Несмотря на то,  что на арену сетевого обмена выходят все новые средства и технологии, вряд ли они  смогут потеснить FTP­обмен в рамках существующих стандартов TCP/IP. Если  обратиться к хорошо известной картинке распределения трафика по информационным  сервисам Internet (рисунок 1.1), то легко можно обнаружить, что два протокола FTP и  Prospero в совокупности довольно сильно превышают трафик HTTP. Упоминание о Prospero связано с поиском необходимых пользователю материалов в FTP­ архивах. Обычно для этой цели используется программа Archie, которая взаимодействует с поисковой машиной (сервером, поддерживающим индекс) по протоколу Prospero.Для того чтобы понять насколько эффективен FTP­обмен достаточно взглянуть еще на  один график (рисунок 1.2), на котором представлено соотношение переданных по сети  байтов и пакетов. При обсуждении сравнения эффективности обмена следует принимать во внимание  особенности организации транспорта информации в сетях TCP/IP при использовании  транспортного протокола TCP (Transfer Control Protocol).Рис. 1.2. Пакеты и байты Если не вдаваться в детали и не придерживаться терминологии сетей TCP/IP, то при  обмене информацией по сети TCP/IP при транспорте TCP, перед тем как начать отправку  сообщения, устанавливается виртуальный TCP­канал. Это означает, что сначала  выполняется процедура организации этого канала или, как ее еще называют, трехфазный  "хэндшейк" (handshake). При этой процедуре стороной, которая устанавливает  соединение отправляется запрос на организацию канала, затем получается подтверждение на получение этого запроса, после этого отправляется подтверждение на получение  подтверждения и первый пакет данных (рисунок 1.3).Рис. 1.3. Процедура инициирования TCP­соединения Аналогично началу TCP­обмена устроена и процедура разрыва виртуального TCP­канала.  Также посылается уведомление об окончании соединения, получается подтверждение и  только после этого канал разрывается. Очевидно, что чем больше данных за один TCP­сеанс будет передано, тем более  эффективней (с точки зрения соотношения переданной полезной и служебной  информации) будет обмен. В этом смысле FTP работает эффективно. В начале сессии  организуется канал, который потом будет использоваться для всего обмена. Если  сравнить теперь FTP и HTTP (основной протокол World Wide Web), то станет ясно, что  ориентированный на разрыв соединения после передачи порции данных HTTP гораздо  менее эффективен, чем FTP. Это небольшое отступление в область основ технологии межсетевого обмена должно  было продемонстрировать, что при использовании той или иной технологии всегда  следует помнить о том, как эта технология в конечном счете реализуется. Это важно,  например, для выбора времени создания "зеркала" чужого FTP­архива. Если такое  "зеркало" создавать в рабочее время в организации, где большое количество  пользователей работает с информационными ресурсами Internet, то можно довольносильно затормозить их работу. Особенно это актуально для организаций, которые  работают по выделенным каналам связи с пропускной способностью 64Кб/с­128Кб/с и  имеют в штате порядка сотни сотрудников, которые одновременно используют этот  канал. Сервис FTP будет стремиться захватить канал целиком и это ему удастся сделать,  т.к. HTTP будет использовать канал только в короткие промежутки времени. При рассмотрении информационных технологий Internet следует также принимать во  внимание тот факт, что они все взаимосвязаны и почти всегда можно получить доступ к  одной из них через другую. Так, например, к FTP­архиву можно обратиться через электронную почту или  использовать Web­броузер для доступа к FTP­архиву. Все эти возможности предполагают использование программ­шлюзов. Если представить такое взаимодействие в виде схемы,  то выглядеть это будет так, как представлено на рисунке 1.4. Рис. 1.4 Организация доступа к ресурсу через программы­посредники На принципе использования посредников в настоящее время строится универсальная  система доступа к ресурсам Internet из World Wide Web. Чем более широко внедряется  Web на рабочие столы пользователей, тем меньше вероятность того, что им придется  изучать технологии типа Telnet или FTP. Но это не означает, что эти технологии исчезли  из сети. Администраторы узлов Web все равно обязаны знать, как все это спрятанное от  пользователей "хозяйство" функционирует. Электронная почта в Internet Электронная почта ­ один из важнейших информационных ресурсов Internet. Она является самым массовым средством электронных коммуникаций. Любой из пользователей Internet  имеет свой почтовый ящик в сети. Если учесть, что через Internet можно принять или  послать сообщения еще в два десятка международных компьютерных сетей, некоторые изкоторых не имеют on­line сервиса вовсе, то становится понятным, что почта  предоставляет возможности в некотором смысле даже более широкие, чем просто  информационный сервис Internet. Через почту можно получить доступ к информационным ресурсам других сетей. Хорошим примером может служить доступ к архивам сети  BITNET ­ документам и телеконференциям, которые ведутся на серверах списков  (LISTSERVER) BITNET. Принципы организации Электронная почта во многом похожа на обычную почтовую службу. Корреспонденция  подготавливается пользователем на своем рабочем месте либо программой подготовки  почты, либо просто обычным текстовым редактором. Обычно программа подготовки  почты вызывает текстовый редактор, который пользователь предпочитает всем остальным программам этого типа. Затем пользователь должен вызвать программу отправки почты  (программа подготовки почты вызывает программу отправки автоматически).  Стандартной программой отправки является программа sendmail. Sendmail работает как  почтовый курьер, который доставляет обычную почту в отделение связи для дальнейшей  рассылки. В Unix­системах программа sendmail сама является отделением связи. Она  сортирует почту и рассылает ее адресатам. Для пользователей персональных  компьютеров, имеющих почтовые ящики на своих машинах и работающих с почтовыми  серверами через коммутируемые телефонные линии, могут потребоваться  дополнительные действия. Так, например, пользователи почтовой службы Relcom должны запускать программу UUPC, которая осуществляет доставку почты на почтовый сервер. Для работы электронной почты в Internet разработан специальный протокол Simple Mail  Transfer Protocol (SMTP), который является протоколом прикладного уровня и  использует транспортный протокол TCP. Однако, совместно с этим протоколом  используется и Unix­Unix­CoPy (UUCP) протокол. UUCP хорошо подходит для  использования телефонных линий связи. Большинство пользователей электронной почты  Relcom реально пользуются для доставки почты на узел именно этим протоколом.  Разница между SMTP и UUCP заключается в том, что при использовании первого  протокола sendmail пытается найти машину­получателя почты и установить с ней  взаимодействие в режиме on­line для того, чтобы передать почту в ее почтовый ящик. В  случае использования SMTP почта достигает почтового ящика получателя за считанные  минуты и время получения сообщения зависит только от того, как часто получатель  просматривает свой почтовый ящик. При использовании UUCP почта передается по  принципу "stop­go", т.е. почтовое сообщение передается по цепочке почтовых серверов от одной машины к другой пока не достигнет машины­получателя или не будет отвергнуто  по причине отсутствия абонента­получателя. С одной стороны, UUCP позволяетдоставлять почту по плохим телефонным каналам, т.к. не требуется поддерживать линию  все время доставки от отправителя к получателю, а с другой стороны, бывает обидно  получить возврат сообщения через сутки после его отправки из­за того, что допущена  ошибка в имени пользователя. В целом же общие рекомендации таковы: если имеется  возможность надежно работать в режиме on­line и это является нормой, то следует  настраивать почту для работы по протоколу SMTP, если линии связи плохие или on­line  используется чрезвычайно редко, то лучше использовать UUCP. Рис. 2.1. Структура взаимодействия участников почтового обмена Основой любой почтовой службы является система адресов. Без точного адреса  невозможно доставить почту адресату. В Internet принята система адресов, которая  базируется на доменном адресе машины, подключенной к сети. Например, для  пользователя paul машины с адресом polyn.net.kiae.su почтовый адрес будет выглядеть  как: paul@polyn.net.kiae.su.  Таким образом, адрес состоит из двух частей: идентификатора пользователя, который  записывается перед знаком "коммерческого эй" ­ "@", и доменного адреса машины,  который записывается после знака "@". Адрес UUCP был бы записан как строка вида: net.kiae.su!polyn!paulПрограмма рассылки почты Sendmail сама преобразует адреса формата Internet в адреса  формата UUCP, если доставка сообщения осуществляется по этому протоколу. Протокол SMTP Simple Mail Transfer Protocol был разработан для обмена почтовыми сообщениями в сети  Internet. SMTP не зависит от транспортной среды и может использоваться для доставки  почты в сетях с протоколами, отличными от TCP/IP и Х.25. Достигается это за счет  концепции IPCE (InterProcess Communication Environment). IPCE позволяет  взаимодействовать процессам, поддерживающим SMTP в интерактивном режиме, а не в  режиме "STOP­GO". Модель протокола. Взаимодействие в рамках SMTP строится по принципу двусторонней связи, которая устанавливается между отправителем и получателем почтового  сообщения. При этом отправитель инициирует соединение и посылает запросы на  обслуживание, а получатель на эти запросы отвечает. Фактически, отправитель выступает  в роли клиента, а получатель ­ сервера. Рис. 2.2. Схема взаимодействия по протоколу SMTP Канал связи устанавливается непосредственно между отправителем и получателем  сообщения. При таком взаимодействии почта достигает абонента в течение нескольких  секунд после отправки. Дисциплины работы и команды протокола. Обмен сообщениями и инструкциями в  SMTP ведется в ASCII­кодах. В протоколе определено несколько видов взаимодействия  между отправителем почтового сообщения и его получателем, которые здесь называются  дисциплинами. Наиболее распространенной дисциплиной является отправка почтового сообщения,  которая начинается по команде MAIL, идентифицирующей отправителя: MAIL FROM: paul@quest.polyn.kiae.suСледующей командой определяется адрес получателя: RCPT TO: paul@apollo.polyn.kiae.su После того, как определен отправитель и получатель почтового сообщения, можно  отправлять последнее: DATA Команда DATA вводится без параметров и идентифицирует начало ввода почтового  сообщения. Сообщение вводится до тех пор, пока не будет введена строка с точкой в  первой позиции. Согласно стандарту почтового сообщения RFC822 отправитель передает  заголовок и тело сообщения, которые разделены пустой строкой. Сам протокол SMTP не  накладывает каких­либо ограничений на информацию, которая заключена между  командой DATA и "." в первой позиции последней строки. Приведем пример обмена  сообщениями при дисциплине отправки почты: S: MAIL FROM:  R: 250 Ok S: RCPT TO:  R: 250 Ok S: DATA R: 354 Start mail input; end with . S: Это текст почтового сообщения S: . R: 250 Другой дисциплиной, определенной в протоколе SMTP является перенаправление  почтового сообщения (forwarding). Если получатель не найден, но известно его  местоположение, то сервер может выдать сообщение: R: 251 User not local; will forward to  Если сервер может сделать только предположение о дальнейшей рассылке, то ответ будет несколько иным:R: 551 User not local; please try  Верификация и расширение адресов составляют дисциплину верификации. В ней  используются команды VRFY и EXPN. По команде VRFY сервер подтверждает наличие  или отсутствие указанного пользователя: S: VRFY paul R: 250­Paul Khramtsov Используя команду EXPN можно получить список местных пользователей: S: EXPN Example­People R: 250­Paul Khramtsov R: 250­Vladimir Drach­Gorkunov В список дисциплин, разрешенных протоколом SMTP входит кроме отправки почты еще и прямая рассылка сообщений. В этом случае сообщение будет отправляться не в почтовый  ящик, а непосредственно на терминал пользователя, если пользователь в данный момент  находится за своим терминалом. Прямая рассылка осуществляется по команде SEND,  которая имеет такой же синтаксис, как и команда MAIL. Кроме SEND прямую рассылку  осуществляют SOML (Send or Mail) и SAML (Send and Mail). Назначение этих команд  легко понять из их названия. Для инициализации канала обмена почтой и его закрытия используются команды HELO и  QUIT соответственно. Первой командой сеанса должна быть команда HELO. Протокол допускает рассылку почтовых сообщений в режиме оповещения. Для этой цели  отправитель в адресе получателя может указать несколько пользователей или групповой  адрес. Обычно, программное обеспечение SMTP выбирает эту информацию из заголовка  почтового сообщения и на ее основе формирует параметры команд протокола. Если сообщение по какой­либо причине не может быть разослано, то получатель  формирует сообщение о неразосланном сообщении: S: MAIL FROM:<> R:  250 Ok S: RCPT TO: <@host.domain:JOE@host.domain>R: 250 Ok S: DATA R: 354 send the mail data, end with . S: Date 23 Oct 95 11:23:30 S: From: SMTP@remote.domain S: To:  S: S: Undelivered message. Your message lost. 550 No such user. S: . При использовании доменных имен следует использовать канонические имена, т.к.  некоторые системы не могут определить синоним по базе данных named. Кроме выше перечисленных дисциплин протокол позволяет отправителю и получателю  меняться ролями друг с другом. Происходит это по команде TURN. Для отладки или проверки соединения по SMTP можно использовать telnet. Для этого  вслед за адресом машины следует ввести номер порта: /users/local>telnet apollo.polyn.kiae.su 25 25 порт используется в Internet для обмена сообщениями по протоколу SMTP. В  интерактивном режиме пользователь сам изображает клиента SMTP и может посмотреть  реакцию удаленной машины на его действия. Протокол POP3 (Post Office Protocol) Протокол обмена почтовой информацией POP3 предназначен для разбора почты из  почтовых ящиков пользователей на их рабочие места при помощи программ­клиентов.  Если по протоколу SMTP пользователи отправляют корреспонденцию через Internet, то по протоколу POP3 пользователи получают корреспонденцию из своих почтовых ящиков на  почтовом сервере в локальные файлы. Формат почтового сообщения (RFC­822)При обсуждении примеров отправки и получения почтовых сообщений уже упоминался  формат почтового сообщения. Разберем его подробнее. Формат почтового сообщения  Internet определен в документе RFC­822 (Standard for ARPA Internet Text Message). Это  довольно большой документ объемом в 47 страниц машинописного текста, поэтому  рассмотрим формат сообщения на примерах. Почтовое сообщение состоит из трех частей: конверта, заголовка и тела сообщения. Пользователь видит только заголовок и тело  сообщения. Конверт используется только программами доставки. Заголовок всегда  находится перед телом сообщения и отделен от него пустой строкой. RFC­822  регламентирует содержание заголовка сообщения. Заголовок состоит из полей. Поля  состоят из имени поля и содержания поля. Имя поля отделено от содержания символом  ":". Минимально необходимыми являются поля Date, From, cc или To, например: Date: 26 Aug 76 1429 EDT From:Jones@Registry.org cc: или Date: 26 Aug 76 1429 EDT From:Jones@Registry.org To: Smith@Registry.org Поле Date определяет дату отправки сообщения, поле From ­ отправителя, а  поля сс и To ­ получателя(ей). Чаще заголовок содержит дополнительные поля: Date: 26 Aug 76 1429 EDT From:George Jones Sender: Secy@SHOST To: Smith@Registry.org Message­ID: <4231.629.XYzi­What@Registry.org> В данном случае поле Sender указывает, что George Jones не является автором сообщения. Он только переслал сообщение, которое получил из Secy@SHOST. Поле Message­ ID содержит уникальный идентификатор сообщения и используется программами  доставки почты. Следующее сообщение демонстрирует все возможные поля заголовка:Date: From: Subject: Sender: 27 Aug 76 0932 Ken Davis  Re: The Syntax in the RFC KSecy@Other­host Reply­To: Sam.Irving@Reg.Organization To: cc: George Jones  Important folks: Tom Softwood , "Sam Irving"@Other­Host;, Standard Distribution: /main/davis/people/standard@Other­Host Comment: Sam is away on bisiness. In­Reply­To: , George`s message X­Special­action: This is a sample of user­defined field­ names. Message­ID: <4331.629.XYzi­What@Other­Host Поле Subject определяет тему сообщения, Reply­To ­ пользователя, которому  отвечают, Comment ­ комментарий, In­Reply­To ­ показывает, что сообщение относится к  типу "В ответ на Ваше сообщение, отвечающее на сообщение, отвечающее ...", X­Special­ action ­ поле, определенное пользователем, которое не определено в стандарте. Следует сказать, что формат сообщения постоянно дополняется и совершенствуется. В  RFC­1327 введены дополнительные поля для совместимости с почтой X.400. Кроме  этого, следует обратить внимание на поля некоторых довольно часто встречающихся  заголовков, которые не регламентированы в RFC­822. Так первое предложение заголовка,  которое начинается со слова From, содержит UUCP­путь сообщения, по которому можно  определить, через какие машины сообщение "пробиралось". ПолеReceived: содержит  транзитные адреса почтовых серверов с датой и временем прохождения сообщения. Вся  эта информация полезна при разборе трудностей с доставкой почты.В заключение хотелось бы отметить, что возможности почты не ограничиваются только  пересылкой корреспонденции. По почте можно получить доступ ко многим ресурсам  Internet, которые имеют почтовых роботов, отвечающих на запросы страждущих. Поэтому имеет смысл более детально изучить программное обеспечение, поддерживающее e­mail.  Время, затраченное на чтение документации и опыты, окупятся возможностью получения  информации из информационных архивов сети Спецификация MIME (Multipurpose Internet Mail Extension) Стандарт MIME, или в нотации Internet RFC­1341, предназначен для описания тела  почтового сообщения Internet. Предшественником MIME является стандарт почтового  сообщения ARPA (RFC822).Стандарт RFC822 был разработан для обмена текстовыми  сообщениями. С момента опубликования стандарта возможности аппаратных средств и  телекоммуникаций ушли далеко вперед и стало ясно, что многие типы информации,  которые широко используются в сети невозможно передать по почте без специальных  ухищрений. Так в тело сообщения нельзя включить графику, аудио, видео и другие типы  информации. RFC822 не дает возможностей для передачи даже текстовой информации,  которую нельзя реализовать в семибитовой кодировке ASCII. Естественно, что при  использовании RFC822 не может быть и речи о передаче размеченного текста для  отображения его различными стилями. Ограничения RFC822 становятся еще более  очевидными, когда речь заходит об обмене сообщениями в разных почтовых системах.  Например, для приема/передачи сообщений из/в X.400, который позволяет иметь  двоичные данные в теле сообщения, ограничения старого стандарта могут стать  фатальными, так как не спасает старый испытанный способ кодировки информации  процедурой uuencode, так как эти данные могут быть по­различному  проинтерпретированы в X.400 и программе рассылки почты в Internet (mail­agent). В некотором смысле стандарт MIME ортогонален стандарту RFC822. Если последний  подробно описывает в заголовке почтового сообщения текстовое тело письма и механизм  его рассылки, то MIME, главным образом, сориентирован на описание в заголовке письма  структуры тела почтового сообщения и возможности составления письма из  информационных единиц различных типов. В стандарте зарезервировано несколько способов представления разнородной  информации. Для этой цели используются специальные поля заголовка почтового  сообщения:  поле версии MIME, которое используется для идентификации сообщения,  подготовленного в новом стандарте; поле описания типа информации в теле сообщения, которое позволяет обеспечить  правильную интерпретации данных;  поле типа кодировки информации в теле сообщения, указывающее на тип  процедуры декодирования;  два дополнительных поля, зарезервированных для более детального описания тела  сообщения. Стандарт MIME разработан как расширяемая спецификация, в которой подразумевается,  что число типов данных будет расти по мере развития форм представления данных. При  этом следует учитывать, что анархия типов (безграничное их увеличение) тоже не  допустима. Каждый новый тип в обязательном порядке должен быть зарегистрирован  в IANA (Internet Assigned Numbers Authority). Остановимся подробнее на форме и  назначении полей, определяемых стандартом. Поле версии MIME (MIME­Version) Поле версии указывается в заголовке почтового сообщения и позволяет определить  программе рассылки почты, что сообщение подготовлено в стандарте MIME. Формат  поля выглядит как:  MIME­Version: 1.0 Поле версии указывается в общем заголовке почтового сообщения и относится ко всему  сообщению целиком. Здесь уместно отметить, что в отличие от стандарта RFC822,  стандарт MIME позволяет перемешивать поля заголовка сообщения с телом сообщения.  Поэтому все поля делятся на два класса: общие поля заголовка, которые записываются в  начале почтового сообщения и частные поля заголовка, которые относятся только к  отдельным частям составного сообщения и записываются перед ними. Поле типа содержания тела почтового сообщения (Content­Type) Поле типа используется для описания типа данных, которые содержатся в теле почтового  сообщения. Это поле сообщает программе чтения почты какого сорта преобразования  необходимы для того, чтобы сообщение правильно проинтерпретировать. Эта же  информация используется и программой рассылки при кодировании/декодировании  почты. Стандарт MIME определяет семь типов данных, которые можно передавать в теле  письма: текст (text); смешанный тип (multipart); почтовое сообщение (message);  графический образ (image); аудио информация (audio); фильм или видео (video);  приложение (application). Общая форма записи поля выглядит в записи Бекуса­Наура как:Content­Type:= type "/" subtype *[";" parameter]         type :=    "application"     / "audio" / "image"           / "message" / "multipart"       / "text" / "video"           / x­token         x­token := <Два символа "X­", за которыми без пробела     следует последовательность любых символов> subtype := token         parameter:= attribute "=" value         attribute:= token value := token / quoted­string token := 1*<любой символ кроме пробела и управляющего символа,             или tspecials>         tspecials:=  "(" /")" / "<" / ">" / "@"  ; Обязательно  /  "," / ";" / ":" / "\" / <">  ; должны быть,  /  "/" / "[" / "]" / "?" / "."  ; заключены в  /  "="                          ; кавычки. Остановимся подробнее на каждом из типов, разрешенных стандартом MIME. Text. Этот тип указывает на то, что в теле сообщения содержится текст. Основным  подтипом типа "text" является "plain", что обозначает так называемый планарный текст.  Понятие планарного текста появилось в связи с тем, что существует еще размеченный  текст, т.е. текст со встроенными в него символами управления отображением, и  гипертекст, т.е. текст, который можно просматривать не последовательно, а произвольно,  следуя гипертекстовым ссылкам. Для обозначения размеченного текста используют  подтип "richtext", а для обозначения гипертекста подтип "html". Вообще говоря, "html" ­  это специальный вид размеченного текста, который используется для представления  гипертекстовой информации в системе World Wide Web, которая получила в последнее  время широкое распространение в Internet. Понятие размеченного текста требует болееподробного обсуждения, так как его передача и интерпретация являются одной из причин появления стандарта MIME. "Richtext" определяет текст со встроенными в него специальными управляющими  последовательностями, которые в соответствии со стандартом языка разметки  документов SGML называются тагами. Таги представляют из себя последовательность  символов типа "<строка­символов>". "Строка­символов" определяет управляющее  действие. Таги делятся на таги начала элемента текста ("<......>") и таги конца элемента  текста (""). В качестве примера такой разметки можно привести следующий  фрагмент текста: Now is the time for all good men  (and women>) to  come to the aid of their В этом фрагменте  означает выделение "жирным" шрифтом,  ­ курсив,   ­ мелкий шрифт,  ­ знак "<", игнорирование обозначено как ,  новая строка как . Специальный тип разметки задается подтипом "html". Это так называемый гипертекст.  Разметка гипертекста строится по тому же принципу как и в тексте типа  "richtext". Однако применяются таги, позволяющие описать гипертекстовые ссылки. К  таким тагам относятся ".....", .  Таг " ....... определяет следующий фрагмент текста, который будет  просматриваться. При этом текст между тагом начала и тагом конца будет выделен в  программе просмотра цветом или другим способом и используется как контекстная  гипертекстовая ссылка. Таг  задет встроенный в текст документа графический  образ. В некотором смысле этот таг аналогичен "multipart", который разрешает  комбинировать сообщение из нескольких фрагментов разного типа. Таг   определяет "якорь", т.е. место внутри документа, на которое можно сослаться как на  метку. В качестве примера такой разметки текста можно привести следующий фрагмент: Это пример разметки документа в формате HTML.

Это заголовок документа

        

 ­ Это параграф.          Это пример гипертекстовой ссылки.           Это встроенный image.          Это "якорь" внутри текста документа. "Multipart". Этот тип содержания тела почтового сообщения определяет смешанный  документ. Смешанный документ может состоять из фрагментов данных разного типа.  Данный тип имеет ряд подтипов. Подтип "mixed" ­ задает сообщение, состоящее из нескольких фрагментов, которые  разделены между собой границей, задаваемой в качестве параметра подтипа. Приведем  простой пример: From: Nathaniel Borenstein          To: Ned Freed          Subject: Sample message         MIME­Version: 1.0         Content­type: multipart/mixed; boundary="simple boundary"         This is the preamble.  It is to be ignored, though it is a handy place for mail composers to include an explanatory note to non­MIME compliant readers.         ­­simple boundary         This is implicitly typed plain ASCII text.It does NOT end with a linebreak.         ­­simple boundary         Content­type: text/plain; charset=us­ascii         This is explicitly typed plain ASCII text.         It DOES end with a linebreak.         ­­simple boundary­­         This is the epilogue.  It is also to be ignored. В данном примере поле "Content­Type" определяет подтип "mixed" и границу между  фрагментами, как строку "­­simple boundary­­". В начале каждого фрагмента может быть  задана своя строка с полем "Content­Type". Как видно из примера, существует два  фрагмента, которые не отображаются: преамбула и эпилог, в которые можно поместить  комментарии. Другим подтипом может быть подтип "alternative". Данный подтип позволяет  организовать вариабельный просмотр почтового сообщения в зависимости от типа  программы просмотра. Приведем пример: From:  Nathaniel Borenstein  To: Ned Freed  Subject: Formatted text mail         MIME­Version: 1.0 Content­Type: multipart/alternative; boundary=boundary42 ­­boundary42 1 фрагмент Content­Type: text/plain; charset=us­ascii...plain text version of message goes here.... ­­boundary42 2 фрагмент         Content­Type: text/richtext         .... richtext version of same message goes here ...         ­­boundary42 3 фрагмент         Content­Type: text/x­whatever         .... fanciest formatted version of same  message  goes  here ...         ­­boundary42­­ В этом примере для работы с планарным текстом при использовании алфавитно­ цифровых программ просмотра предназначен первый фрагмент текста. Для просмотра  размеченного текста используется второй фрагмент, для специальной программы  просмотра может быть подготовлен специальный вариант (фрагмент 3). Подтип "digest" предназначен для многоцелевого почтового сообщения, когда  различным частям хотят приписать более детальную информацию, чем просто тип: From: Moderator­Address MIME­Version: 1.0 Subject: Internet Digest, volume 42 Content­Type: multipart/digest; boundary="­­­­ next message ­­­­"­­­­­­ next message ­­­­ From: someone­else Subject: my opinion ...body goes here ... ­­­­­­ next message ­­­­ From: someone­else­again Subject: my different opinion ... another body goes here... ­­­­­­ next message ­­­­­­ Приведенный пример показывает как можно воспользоваться подтипом "digest" для  рассылки почты разным пользователям и по­разному поводу, используя поля  "From:" и "Subject" в качестве частных заголовков. Подтип "parallel" предназначен для составления такого почтового сообщения, части  которого должны отображаться одновременно, что предполагает запуск сразу нескольких  программ просмотра. Синтаксис такого сообщения аналогичен рассмотренным выше. Тип "message". Данный тип предназначен для работы с обычными почтовыми  сообщениями, которые однако не могут быть переданы по почте по разного рода  причинам. Эти причины объясняются подтипами данного типа.Подтип "partial" предназначен для передачи одного большого сообщения по частям для  последующей автоматической сборки у получателя. Приведем пример передачи аудио  сообщения разбитого на части: X­Weird­Header­1: Foo From: Bill@host.com To: joe@otherhost.com Subject: Audio mail Message­ID: id1@host.com MIME­Version: 1.0 Content­type: message/partial; id="ABC@host.com";         number=1; total=2 X­Weird­Header­1: Bar X­Weird­Header­2: Hello Message­ID: anotherid@foo.com Content­type: audio/basic Content­transfer­encoding: base64 ... first half of encoded audio data goes here...         and the second half might look something like this: From: Bill@host.com To: joe@otherhost.com Subject: Audio mailMIME­Version: 1.0 Message­ID: id2@host.com Content­type: message/partial; id="ABC@host.com"; number=2; total=2 ... second half of encoded audio data goes here... Атрибуты подтипа определяют идентификатор сообщения (id), номер порции  (number) и общее число порций (total). Следует обратить внимание на то, что каждая  часть имеет свое поле "Content­Type". Это означает, что все сообщение может состоять из частей разных типов. Другим подтипом является "External­Body", который позволяет ссылаться на внешние,  относительно сообщения, информационные источники. Этот подтип похож на  гипертекстовую ссылку из типа "text".Приведем конкретный пример: From: Whomever Subject: whatever MIME­Version: 1.0 Message­ID: id1@host.com Content­Type: multipart/alternative; boundary=42 ­­42         Content­Type: message/external­body; name="BodyFormats.ps"; site="thumper.bellcore.com"; access­type=ANON­FTP; directory="pub"; mode="image"; expiration="Fri, 14 Jun 1991 19:13:14 ­0400 (EDT)"Content­type: application/postscript ­­42 Content­Type: message/external­body; name="/u/nsb/writing/rfcs/RFC­XXXX.ps"; site="thumper.bellcore.com"; access­type=AFS expiration="Fri, 14 Jun 1991 19:13:14 ­0400 (EDT)" Content­type: application/postscript ­­42 Content­Type: message/external­body; access­type=mail­server server="listserv@bogus.bitnet"; expiration="Fri, 14 Jun 1991 19:13:14 ­0400 (EDT)" Content­type: application/postscript get rfc­xxxx doc ­­42­­ В данном примере приведено использование "External­Body" и "multipart/alternative". Все  сообщение разбито на несколько фрагментов. В каждом из фрагментов находится ссылка  на внешний файл. Реально тела почтового сообщения нет (границы программами  просмотра не отображаются). Однако если программа просмотра способна работать с  внешними протоколами, то можно ссылки разрешить автоматически, запуская  соответствующий сервис. Стандартным подтипом типа "message" является "rfc822". Данный подтип определяет  сообщения стандарта RFC822. Типы описания нетекстовой информации. Таких типов имеется четыре:  "image" для описания графических образов. Наиболее часто используются файлы  форматов GIF и JPEG. "audio" для описания аудио информации. Для воспроизведения сообщения данного типа требуется специальное оборудование.  "video" для передачи фильмов. Наиболее популярным является формат MPEG.  "application" для передачи данных любого другого формата, обычно используется  для передачи двоичных данных для последующего промежуточного  преобразования. Так если на машине стоит видео­карта с 512Kb памяти, а графика  подготовлена в 256 цветах, то сначала ее следует преобразовать и здесь может  помочь тип "application". Основной подтип данного типа ­ "octet­stream", но  существуют "ODA" и "Postscript". Назначение данных типов ясно из названия ­ обозначение данных для последующей  обработки как данных в форматах, определяемых подтипом. Поле типа кодирования почтового сообщения (Content­Transfer­Encoding). Многие  данные передаются по почте в их исходном виде. Это могут быть 7bit символы, 8bit  символы, 64base символы и т.п. Однако при работе в разнородных почтовых средах  необходимо определить механизм их представления в стандартном виде ­ US­ASCII. Для  этого существуют процедуры кодирования такого сорта данных. Наиболее широко  применяемая ­ uuencode. Для того, чтобы при получении данные были бы правильно  распакованы и введено в стандарт поле "Сontent­Transfer­Encoding". Синтаксис этого  поля следующий: Content­Transfer­Encoding:= "BASE64" / "QUOTED­PRINTABLE" /                     "8BIT"   / "7BIT" /                     "BINARY" / x­token Каждая из альтернатив применяется в своем подходящем случае. Альтернативы "8bit",  "7bit", "BINARY" реально никакого преобразования не требуют, так как почта передается байтами и SMTP не делает различия между ними. Однако они введены для строгости  описания типов. "BASE64" обычно используется в связке с типом "text/ISO­8859­1", "x­ token" позволяет пользователю описать свою процедуру преобразования. Дополнительные необязательные поля. Как уже говорилось ранее, стандарт определяет еще два дополнительных поля: "Content­ID" и "Content­Description". Первое поле  определяет уникальный идентификатор содержания, а второе служит для комментария  содержания. Ни то, ни другое программами просмотра обычно не отображаются. В заключении обсуждения стандарта MIME комплексный пример без комментариев:MIME­Version: 1.0 From: Nathaniel Borenstein  Subject: A multipart example Content­Type: multipart/mixed; boundary=unique­boundary­1 This is the preamble area of a multipart message. Mail readers that understand multipart format should ignore this preamble. If you are reading this text, you might want to consider changing to a mail reader that understands how to properly display multipart messages. ­­unique­boundary­1 ...Some text appears here... [Note that the preceding blank line means no header fields were given and this is text, with charset US ASCII.  It could have been done with explicit typing as in the next part.] ­­unique­boundary­1 Content­type: text/plain; charset=US­ASCII This could have been part of the previous part, but illustrates explicit versus implicittyping of body parts. ­­unique­boundary­1 Content­Type: multipart/parallel; boundary=unique­boundary­2 ­­unique­boundary­2 Content­Type: audio/basic Content­Transfer­Encoding: base64 ... base64­encoded 8000 Hz single­channel u­law­format audio data goes here.... ­­unique­boundary­2 Content­Type: image/gif Content­Transfer­Encoding: Base64 ... base64­encoded image data goes here.... ­­unique­boundary­2­­ ­­unique­boundary­1 Content­type: text/richtextThis is richtext. Isn't it cool? ­­unique­boundary­1 Content­Type: message/rfc822 From: (name in US­ASCII) Subject: (subject in US­ASCII) Content­Type: Text/plain; charset=ISO­8859­1 Content­Transfer­Encoding: Quoted­printable ... Additional text in ISO­8859­1 goes here ... ­­unique­boundary­1­­ Подводя итоги обсуждения, еще раз следует отметить, что стандарт MIME позволяет  расширить область применения электронной почты, обеспечить доступ к другим  информационным ресурсам сети в стандартных форматах. Программное обеспечение почтового обмена Согласно схеме почтового обмена (рисунок 2.1) взаимодействие между участниками  этого обмена строится по классической схеме "клиент­сервер". При этом схему можно  подразделить на несколько этапов. Первый ­ взаимодействие по протоколу SMTP между  почтовым клиентом (Internet Mail, Netscape 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) межпроцессного обмена. При получении сообщений из очереди используются временные файлы очередей. Эти  очереди используются для хранения неразосланных сообщений. Сообщение хранится в  двух файлах. В одном файле хранится тело сообщения, а в другом конверт и заголовок  сообщения. Обычно sendmail опрашивает очереди через определенные администратором  почтового сервера промежутки времени, на предмет наличия в них неразосланных  сообщений.Рис. 3.1. Схема почтового взаимодействия на базе программы Sendmail Вторая стадия рассылки почты ­ рассылка сообщений. Как только одним из описанных выше способов sendmail получила сообщение, делается  попытка его отправить по адресу. Для этого sendmail определяет три параметра:  программу рассылки, узел сети и получателя. Эта процедура производится по правилам,  которые содержатся в файле конфигурации. Sendmail сохраняет одну копию тела  сообщения во временном файле, а заголовок загружает в оперативную память. Длякаждого сообщения программа доставки (рассылки) сообщений вызывается отдельно.  Если сообщение должно быть доставлено на разные машины, то для каждой из машин  также вызывается своя программа доставки. Некоторые программы могут обслуживать  сразу несколько абонентов одной машины, если это невозможно, то для каждого абонента  вызывается также своя программа доставки. Рассматривают два типа рассылки: на  удаленную машину и местную рассылку. Рассылка на удаленную машину. Для вызова программы рассылки sendmail открывает  pipe и запускает программу рассылки, командная строка которой находится в файле  конфигурации. Sendmail записывает заголовок и тело сообщения в pipe. Если программа  рассылки не использует протокол SMTP, то адрес получателя передается через pipe. Если используется SMTP, то открывается двунаправленный канал для интерактивного  взаимодействия с удаленным сервером SMTP. Если в качестве транспортного протокола  используется TCP, то sendmail не запускает внешнюю программу рассылки, а сама  инициирует TCP­соединение с удаленным сервером SMTP. Доставка местной почты. Если sendmail определяет, что адреса доставки местные, то  происходит обращение к файлу адресных синонимов и производится преобразование  адресов (расширение). Файл адресных синонимов можно использовать для  перенаправления почты в файлы или для обработки местными программами.  Пользователь может иметь и свой собственный файл адресных синонимов для управления рассылкой персональной почты. После преобразования адресов почта отправляется  программе местной рассылки (например rmail). Важным моментом при работе sendmail является алгоритм определения типа адресов.  При использовании стандартного файла конфигурации применяются следующие правила:  почта рассылается в соответствии с форматом адреса получателя, адреса при этом  бывают местные, UUCP и SMTP. Местные адреса имеют вид: user user@localhost user@localhost.localdomain user@alias user@alias.localdomain user@[local.host.internet.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:user@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 на машину hostAhostA!user%hostB ­ почта отправляется с hostA на hostB Подводя итог обсуждению принципов работы sendmail, следует специально подчеркнуть  тот факт, что почта реально рассылается двумя принципиально разными способами. При  использовании протокола UUCP почта рассылается по принципу "stop­go", т.е. сообщения передаются от машины к машине по указанному в адресе пути. Следует ясно  представлять, если почта ушла с машины отправителя, то это не означает, что она  поступит получателю. Промежуточная машина может вернуть почту назад, если не  сможет разослать. Электронная почта действительно работает как система обычной  почты, физически перемещая и храня сообщения на промежуточных почтовых станциях.  При работе по протоколу SMTP почта реально отправляется только тогда, когда  установлено интерактивное соединение с программой­сервером на машине­получателе  почты. При этом происходит обмен командами между клиентом и сервером протокола  SMTP в режиме on­line. При смешанной адресации доставка почты происходит по  смешанному сценарию. Как шла доставка и как маршрутизировалось сообщение можно  определить из заголовка сообщения, которое вы получили. Анализ типа адресов в программе sendmail ­ это самый главный процесс, т.к. по типу  адреса получателя sendmail определяет каким способом сообщение будет разослано.  Вызов программы доставки вмонтирован в правила преобразования адресов отправителя и получателя. При этом как только система решит, что дальнейшее преобразование адреса  нецелесообразно, так сразу вызывается программа доставки. Наибольшее число  сообщений об ошибках при рассылке сообщений связано как раз с определением адреса  получателя. В этом процессе принимают участие, по крайней мере, два сервиса Internet:  система рассылки почтовых сообщений и служба доменных имен. Sendmail постоянно  обращается к службе доменных имен на предмет канонизации имен электронной почты  сверяет эти имена с теми, которые закреплены за компьютером, на котором данная  система установлена. Если имена совпадают, то осуществляется местная рассылка по  адресам местной почты.