За
последние 25 лет системы электронной почты
претерпели существенные изменения. С той поры,
когда пользователи мэйнфрейма обменивались
короткими текстовыми сообщениями, до времен,
когда друзья могут посылать свои фотографии
через Internet, системы электронной почты прошли
длинный путь. Для выполнения электронной почтой
новых функций были разработаны и внедрены
протоколы, которые позволяли обмениваться не
только текстовой, но и двоичной информацией (т.е.
файлами) между двумя людьми. Основным толчком
для развития большинства этих протоколов
послужил бурный рост сети Internet. Еще
несколько лет назад для пользователя не было так
важно иметь соединение с поставщиком услуг
Internet (Internet Service Provider — ISP). В
настоящее время протоколы PPP (Point-to-Point
Protocol) и POP3 (Post Office Protocol) являются
основными китами, на которых держится сеть
Internet. С ростом числа пользователей
требования к электронной почте сильно изменились.
В прошлом системы электронной почты являлись
лишь небольшими вспомогательными подсистемами
мэйнфреймов, уступая первенство корпоративным
приложениям. Уже сегодня провайдеры Internet
выделяют отдельные системы только для
обслуживания электронных почтовых ящиков своих
клиентов.
Системы обмена
сообщениями электронной почты в пределах
мэйнфрейма
В
принципе, системы электронной почты
эксплуатируются уже довольно длительное время.
Еще в 70-х годах ХХ века многие производители
мэйнфреймов включали в комплект поставки
программы, которые позволяли пользователям,
включенным в систему, обмениваться короткими
сообщениями. При этом сообщение появлялось на
консоли пользователя, который был в этот момент
подключен к системе. Эти системы обмена
электронными сообщениями, хотя и были не очень
удобными, положили начало созданию систем
электронной почты.
Следующим логическим шагом было предоставление
пользователю возможности посылать сообщение
другому пользователю, который в данный момент не
был подключен к системе. Для этой цели была
разработана сложная система, позволявшая каждому
пользователю работать с отдельной областью на
мэйнфрейме, которая называлась почтовым
ящиком (mailbox). Теперь, чтобы послать
сообщение другому пользователю, нужно было
запустить специальную почтовую программу, с
помощью которой сообщение помещалось в почтовый
ящик адресата. Затем другой пользователь также
запускал почтовую программу, которая проверяла
наличие сообщений в его почтовом ящике. На
рис.1.1 представлена работа такой системы в
мэйнфрейме.
Рис. 1.1. Система обмена сообщениями
электронной почты в пределах мейнфрейма
Однако такая система была довольно ограничена.
Во-первых, сообщения можно было посылать лишь
пользователям в пределах одного мэйнфрейма. В то
время мэйнфреймы еще не имели средств для связи
друг с другом. Во-вторых, посылаемые сообщения
могли содержать только текст. Так что вы не
смогли бы послать другому пользователю
мейнфрейма двоичный файл, содержащий графическое
изображение или программный код.
Системы обмена
сообщениями электронной почты между мэйнфреймами
По
мере развития мэйнфреймов развивались и их
системы связи. Прошло совсем немного времени и
мэйнфреймы смогли обмениваться данными в сложных
сетях связи. Это дало толчок развитию систем
электронной почты, благодаря которым теперь мог
производиться обмен электронными сообщениями
между мэйнфреймами. На рис. 1.2 показан пример
такого взаимодействия.
Рис. 1.2. Системы обмена сообщениями
электронной почты между мэйнфреймами
С
развитием систем связи мэйнфреймов все более
сложными становились и программы для работы с
электронной почтой. Если посылалось сообщение
пользователю другого мэйнфрейма, программа
обработки почты должна была опознать его и
поместить в почтовый ящик адресата на
соответствующем мэйнфрейме. С тех пор имена
мэйнфреймов стали определяющим критерием, и два
мэйнфрейма уже не могли иметь одинаковые имена,
если они принадлежали к одной сети.
Развитие
систем электронной почты на базе ОС UNIX
В
80-х годах ХХ века в компании AT&T Bell Labs
была разработана ОС UNIX, которая приобрела
популярность в университетской среде. Она широко
распространилась на компьютерах, меньших, чем
мэйнфреймы, но имевших вычислительную мощность
сравнимую с ними, и использовались для решения
научных и математических задач в интересах
профессорско-преподавательского состава и
студентов. Эти компьютеры оперировали еще на
принципах мэйнфреймов, но система UNIX уже
требовала регистрации пользователей в системе с
терминалов ввода-вывода, подключенных к
миникомпьютеру.
Операционная система UNIX кардинальным образом
изменила процесс разработки и внедрения
программного обеспечения. На смену громоздким
монолитным программам, выполнявшим все функции,
пришли меньшие по размеру специализированные
программы, которые более эффективно выполняли
отдельные функции. Все это оказало огромное
влияние и на системы электронной почты. Функции
обработки электронной почты теперь были
разделены между несколькими различными
программами, выполнявшими одну определенную
функцию. Все эти функции могли отделяться от
программ, и для их выполнения создавались новые
более эффективные программы. Далее в этом
разделе описываются функции системы электронной
почты и некоторые программы, которые их
реализуют.
Почтовый
пользовательский агент (Mail User Agent)
В
модели электронной почты ОС UNIX для каждого
пользователя предусмотрен локальный почтовый
ящик, в котором для него и хранятся все
сообщения. Для работы с почтовым ящиком имеются
специальные программы, которые называются
почтовыми пользовательскими агентами, сокращенно
MUA (Mail User Agent). Почтовые пользовательские
агенты не принимают сообщения от удаленных
компьютеров, они лишь отображают содержимое
почтового ящика пользователя. На протяжении ряда
лет для платформы UNIX было разработано
несколько различных пользовательских агентов (MUA).
Операционной системой Linux из стандартной UNIX
были позаимствованы многие программы и методы, в
том числе и почтовый пользовательский агент (MUA).
Все программы-агенты, представленные в
последующих разделах, доступны для платформы
Linux.
Программа mail
Простейшим почтовым пользовательским агентом для
платформы Linux является программа
mail. (Не очень
оригинальное название, не правда ли?) Для
взаимодействия с пользователем в этой программе
используется интерфейс командной строки. Команды
для работы с сообщением вводятся из командной
строки. В листинге 1.1 приведен пример почтовой
сессии с помощью программы
mail.
1 [jessica@shadrach
jessica]$ mail
2 Mail version 8.1 6/6/93. Type ? for help.
3 "/var/spool/mail/jessica": 1 message 1 new
4 >N 1 rich@shadrach.smallo Sun Dec 12 17:38
13/485 "This is a test message"
5 & 1
6 Message 1:
7 From rich@shadrach.smallorg.org Sun Dec 12
17:38:08 1999
8 Received: (from rich@localhost)
9 by shadrach.smallorg.org (8.9. la/8.9.1)
id RAA0648
10 for jessica; Sun, 12 Dec 1999 17:38:08
-0500
11 Date: Sun, 12 Dec 1999 17:38:08 -0500
12 From: Rich <rich@shadrach.smallorg.org>
13 Message-Id: <199912122238.RAA0648@shadrach.smallorg.org>
14 To: jessica@shadrach.smallorg.org
15 Subject: This is a test message
16 Status: R
17
18 This is the first test message
19 This is the end of the first test message
20
21 & d
22 & q
23 [ jessica@shadrach jessica ]$
Листинг 1.1. Пример
сеанса работы программы mail
Строка 1 показывает, что пользователь
jessica запускает
программу mail из
командной строки. Затем в строках 2–4 следует
приглашение программы
mail. Во второй строке отображается
версия запущенной программы
mail. В третьей
строке отображается путь к почтовому ящику
пользователя. По умолчанию почтовые ящики
находятся в
/var/spool/mail/username,
где
username — имя
пользователя. В строке 4 отображаются сведения
об имеющихся сообщениях; в нашем случае имеется
одно сообщение, доступное для просмотра. В
строке 5 показана командная строка программы
mail, позволяющая
пользователю вводить новые запросы. Если
пользователь ввел цифру 1,
то программа mail
выдаст содержание первого сообщения,
находящегося в почтовом ящике пользователя.
Строки с 6 по 20 полностью отражают содержание
первого сообщения. Строки с 7 по 16
идентифицируют заголовок сообщения. Заголовком
сообщения называется формализованная информация,
идентифицирующая отправителя и получателя
сообщения электронной почты. Информация,
содержащаяся в заголовке сообщения, часто бывает
полезной при решении проблем, возникающих в
работе электронной почты.
В
строках с 8 по 10 отражается поле заголовка
Received by (Принято).
Каждый узел, через который проходило сообщение
на пути от отправителя к получателю, добавляет
свое имя в поле заголовка
Received by. Это один из способов
отслеживать прохождение сообщений. Например, в
одном случае сообщения электронной почты следуют
из одного пункта в другой более часа. Путем
проверки поля заголовка
Received by принятого сообщения было
выявлено, что один из хостов на пути следования
сообщения ставил сообщения в очередь и не
отправлял их в течение 55 минут. После того как
этот хост был найден, мы связались с его
администратором и проблема была разрешена. Как
видите, это стало возможным благодаря наблюдению
за датой и временем отправки сообщения поля
Received by.
Строки 18 и 19 в нашем случае составляют так
называемое тело сообщения. Подобно системам
электронной почты в пределах мэйнфреймов,
электронная почта UNIX разрешает передачу только
текстовых сообщений. Однако этот недостаток
компенсируется в системе UNIX наличием
возможности преобразования (конвертирования)
двоичных файлов в текстовые файлы формата ASCII
для передачи по электронной почте с
восстановлением их обратно в двоичные на конце
получателя.
Программа pine
С
революционным появлением графических интерфейсов
появились программы, которые используют экранную
графику терминала для отображения информации.
Программа pine —
одна из программ для чтения содержимого почтовых
ящиков пользователя; она отображает сообщения на
экране консоли в графическом режиме. На рис. 1.3
показан пример экранной сессии программы pine.
Рис. 1.3. Программа pine для UNIX
Программа pine
выводит список всех сообщений из папки
пользователя "Входящие", где хранятся все
сообщения, поступившие пользователю по
электронной почте. Пользователь может с ее
помощью создавать дополнительные папки для
удобства хранения и работы с сообщениями
электронной почты.
Программы для оболочки
X Window
Практически всеми версиями ОС Linux
поддерживается графическая оболочка X Window.
Она позволяет запускать более богатые графикой
приложения либо с консоли Linux-сервера, либо с
удаленной рабочей станции под X Window по сети.
Программа KMail является полноценной системой
электронной почты, которая позволяет
пользователю читать сообщения из своего
почтового ящика и посылать их через Linux-сервер.
На рис. 1.4 показан почтовый экран программы
KMail.
Рис. 1.4. Основной экран почтовой
программы KMail
Агент передачи
сообщений (Mail Transfer Agent (MTA))
Вместе с пользовательским агентом (MUA),
отображающим сообщения электронной почты из
почтового ящика пользователя, существует
необходимость в еще одном типе программ, в
функции которого входило бы собственно
извлечение сообщений из почтового ящика. Для
выполнения этих функций и был разработан агент
передачи сообщений, сокращенно — MTA (Mail
Transfer Agent). Агенты MTA отвечают за
пересылку сообщений электронной почты от одного
пользователя другому. Получателями могут быть
как пользователи одной системы, так и удаленных
систем. Агент передачи сообщений отвечает также
за маршрутизацию почтового сообщения всеми
доступными средствами для доставки его
получателю. Часто между передающим и принимающим
хостами бывает несколько почтовых узлов. На рис.
1.5 приведен пример взаимодействия между MTA по
доставке сообщения.
Рис. 1.5. Применение MTA для
формирования маршрута доставки сообщения в пункт
назначения
Если агент передачи сообщений не может найти
прямого пути к агенту передачи сообщений
получателя, он должен определить другое
подходящее место (сервер) для пересылки
сообщения либо вернуть его отправителю с
пометкой о невозможности отправки. Каждый агент
MTA на пути следования сообщения берет на себя
ответственность по доставке сообщения в конечный
пункт назначения, в случае же невозможности
доставки он обязан вернуть его отправителю.
Для
операционной системы Linux в настоящее время
существует несколько различных программ агентов
передачи сообщений. В каждой из них имеются свои
отличительные особенности. В этом разделе мы
рассмотрим несколько основных программ агентов
MTA, которые наиболее широко используются
сегодня.
Программа sendmail
Программа sendmail
является на сегодняшний день одним из наиболее
популярных агентов передачи сообщений для
платформы Linux. Ее продвижение и поддержку
осуществляет sendmail Consortium
(http://www.sendmail.org) и корпорация sendmail,
Inc.
Программа sendmail
является наиболее надежной и универсальной
программой MTA из доступных в настоящее время.
Однако из-за ее универсальности она очень сложна
в настройке. Все настройки
sendmail
определяются стандартным файлом конфигурации.
Этот файл нередко имеет длину в несколько тысяч
строк. В файле конфигурации задаются параметры,
которые управляют обработкой входящих сообщений
и маршрутизацией исходящих сообщений.
Входящие сообщения проходят через сложную
систему правил, которые используются для
фильтрации сообщений, приходящих в систему.
Правила фильтрования также хранятся в файле
конфигурации (отсюда и немалый его размер).
Сообщения могут проверяться по содержанию
заголовка и обрабатываться в соответствии либо с
информацией об отправителе, либо с данными о
получателе сообщения. Исходящие сообщения должны
правильно маршрутизироваться в соответствии с
местонахождением получателя. Конфигурирование
sendmail должно
производиться в соответствии с особенностями
подключения вашего сервера электронной почты к
сети Internet. Довольно часто почтовый сервер на
базе ОС Linux для небольшого офиса
конфигурируется для передачи всех исходящих
сообщений провайдеру услуг Internet, который
затем ретранслирует их в соответствующие пункты
назначения. Такой способ передачи почты
называется способом с использованием "интеллектуального
хоста".
Цель автора книги — разъяснить некоторые
сложности в работе с программой
sendmail. В этой
программе заложено много интересных возможностей.
Но несмотря на то что о
sendmail было издано много
фундаментальных книг, довольно часто их идея
сводится лишь к установке переменных в
конфигурационном файле
sendmail для работы в небольших
организациях. В этой книге файл конфигурации
также описывается довольно подробно (для тех
читателей, которые хотят осуществить серьезную
модификацию программы
sendmail), но мы также остановимся и на
минимальных изменениях конфигурации, которые
нужно произвести при подключении офисного
сервера электронной почты на базе Linux к
провайдеру услуг Internet.
Программа smail
Программа smail
является еще одним довольно популярным агентом
передачи сообщений (MTA) для платформы Linux. Ее
поддержку осуществляет GNU Project
(http://www.gnu.org). GNU Project является
основным распространителем ОС Linux. Более
подробно об этой организации читайте в лекции 2,
"Использование ОС Linux в качестве сервера
электронной почты".
Программа smail
использует большинство возможностей программы
sendmail, но ее
намного проще конфигурировать. Стандартный файл
конфигурации smail
включает в себя менее 20 строк кода, т.е. он
гораздо меньше, чем в
sendmail.
Одно из серьезных преимуществ
smail —
возможность пересылки почтовых сообщений, минуя
почтовые очереди. Программой
sendmail все
сообщения помещаются в файл очереди, где ожидают
отправки. Для низкопроизводительных серверов
электронной почты очереди создают задержки при
доставке сообщений. Программа
smail доставляет
сообщение немедленно без помещения его в очередь
на отправку. Для низкопроизводительных почтовых
серверов это блестящее решение, но, к сожалению,
этот метод не срабатывает на
высокопроизводительных серверах электронной
почты. Однако в программе
smail это компенсируется возможностью
конфигурирования ее для работы с очередями
подобно sendmail,
что позволяет обрабатывать большие объемы
электронной корреспонденции.
Программа qmail
Программа qmail —
еще один MTA для Linux. Ее обслуживанием и
поддержкой занимается Дэн Берстейн (Dan Berstein)
(http://www.qmail.org). Она заявлена как самый
безопасный пакет для работы с электронной почтой,
доступный для платформы Linux. Для поддержания
высокого уровня безопасности программа
qmail использует
несколько идентификаторов пользователей и групп,
которые следует предварительно задать в системе
под управлением ОС Linux. Каждый идентификатор
пользователя используется как владелец
определенной области Linux-сервера. Это
позволяет программе qmail
ограничить доступ к сообщениям электронной почты
злоумышленникам, разрешая доступ к почтовому
ящику лишь зарегистрированному пользователю.
Кроме того, создатели
qmail весьма оригинально решили проблему
хранения сообщений. Так, программы
sendmail и
smail хранят
сообщения в формате ASCII и в очереди, и в
электронном почтовом ящике. Программой
qmail используется
нестандартный метод помещения сообщений в
очередь и почтовые ящики пользователей. Этот
метод имеет высокий коэффициент восстановления в
случае выхода из строя системы. Очень часто при
выходе из строя системы на базе Linux во время
получения или сохранения сообщения, оно (а
иногда и весь почтовый ящик) становится
искаженным и не читается. Программа
qmail повышает
шансы на восстановление целостности сообщений
электронной почты.
Программа exim
Кембриджским университетом была разработана
собственная программа —
exim (http://www.exim.org). Программа
exim недавно
приобрела широкую популярность благодаря высокой
защищенности от хакеров и спамеров. Хакерами
называют людей, которые пытаются проникнуть в
чужие системы через дыры в безопасности
программного обеспечения. Спамеры — это
люди, которые рассылают огромные объемы, как
правило, нежелательной электронной
корреспонденции, главным образом рекламного
характера.
Программа exim
обращается к нескольким конфигурационным файлам,
которые содержат адреса известных вам хакеров и
спамеров, для запрещения приема с этих адресов
каких бы то ни было сообщений вашим почтовым
сервером. При выявлении хакера или спамера его
адрес добавляется в конфигурационные файлы.
После этого любые сообщения с этого адреса
приниматься не будут.
Системы
электронной почты для локальных вычислительных
сетей
В
конце 80-х годов компьютерный мир вновь
полностью изменился с выходом на арену
персонального компьютера (ПК). ПК стали за
считанные годы популярны в корпоративной среде,
вытесняя терминалы ввода-вывода, которые
использовались для работы с мэйнфреймами и
компьютерами.
Во
многих организациях были развернуты локальные
вычислительные сети (ЛВС) с участием серверов,
которые давали возможность совместного
использования дискового пространства
файл-сервера сетевыми рабочими станциями. Это
стало толчком к развитию нового типа почтового
сервера, использующего дисковое пространство
сетевого сервера.
Современные пакеты для работы с электронной
почтой, такие как Microsoft Exchange, Novell
GroupWise и IBM Lotus Notes, используют
программы, которые получают доступ к общей
области на сетевом диске, где находятся почтовые
ящики пользователей. Почтовые ящики довольно
часто содержат простые базы данных. Для
получения доступа к базам данных почтовые
пользовательские агенты (MUA), запускаемые на
рабочих станциях, должны быть способны считывать
и анализировать базу данных почтового ящика. В
этом случае для доступа к почтовым ящикам в базе
данных почти всегда используется оригинальный
протокол.
Программы МТА в такой среде очень часто имеют
тенденцию к усложнению. Вследствие использования
системами электронной почты специальных баз
данных, способ передачи сообщений удаленным
системам зависит от самой удаленной системы.
Если удаленная система пользуется той же
системой электронной почты, что и система
отправителя, то для передачи сообщений можно
использовать один и тот же протокол. Если же в
удаленной системе применяется другая система
электронной почты, то МТА должен иметь функцию
преобразования сообщения в стандартный формат и
использовать при передаче сообщений стандартный
протокол (о чем будет рассказано позже). На рис.
1.6 показан пример использования в сети
оригинального протокола электронной почты.
Рис. 1.6. Система электронной почты для
ЛВС с оригинальным протоколом
Очень часто в системах электронной почты для ЛВС
рабочие станции требуется разделять для
правильной маршрутизации сообщений. Это повышает
опасность сбоя, так как, помимо сервера
электронной почты, в процесс передачи сообщения
вовлекается дополнительное аппаратное и
программное обеспечение.
Еще
одним источником проблем в оригинальных системах
электронной почты является почтовая база данных.
Так как все сообщения хранятся в одной базе
данных, следовательно возрастает количество
сообщений, сохраняемых в системе. Часто такая
практика может привести к сбоям и потере
информации, поэтому рекомендуется запуск
специальных программ по обслуживанию и
восстановлению целостности баз данных.
Невыполнение этих процедур может привести к
потере всех сообщений. В системах на базе ОС
UNIX каждому пользователю выделяется отдельный
почтовый ящик. Если содержимое одного из
почтовых ящиков искажается, то страдает только
один пользователь — владелец этого ящика,
остальным пользователям ничто не угрожает.
Специализированные системы электронной почты для
ЛВС сегодня очень популярны, однако они
становятся все более дорогостоящими. Как
администратору почтовой системы вам следует
тщательно взвесить все "за" и "против" при
покупке специализированной системы электронной
почты. Во многих случаях с помощью почтового
сервера под управлением ОС Linux можно достичь
той же функциональности, которую имеют
коммерческие системы. Однако вместе с Linux вы
получаете программы с открытым для модификации
кодом.
Протоколы
электронной почты
Использование открытых исходных текстов программ
означает, что должны использоваться
соответствующие протоколы, доставляющие
сообщения между хостами и от хостов — клиентам.
Существует набор стандартных протоколов, которые
активно используются программами с открытым
кодом. Благодаря этому достигается
взаимодействие таких программ. В этом разделе
кратко описаны протоколы, которые используются
для передачи сообщений электронной почты. Более
детально все они будут рассмотрены далее в этой
книге.
Протоколы
работы агентов передачи сообщений (MTA)
Протоколы МТА применяются для передачи сообщений
электронной почты от одного хоста к другому.
Каждый из нижеприведенных протоколов может
использоваться хостом как для установления
исходящего соединения с удаленным хостом, так и
для приема входящего соединения от него. В этом
разделе описаны два наиболее популярных
протокола МТА, использующихся в Linux.
UUCP
Протокол UUCP (UNIX-to-UNIX-CoPy) (копирование с
UNIX на UNIX ) был разработан еще для первых
систем на базе ОС UNIX. Сначала он использовался
в качестве средства передачи данных между двумя
UNIX-хостами с помощью дешевых модемов по
обычным телефонным линиям. Со временем ему на
смену пришли другие протоколы, которые
используют высокопроизводительные соединения
через локальные и глобальные сети передачи
данных.
С
ростом популярности Internet сервис-провайдеры
стали использовать системы на базе ОС UNIX для
поддержки удаленных соединений по телефонным
линиям со своими клиентами. Тогда настало время
вспомнить о UUCP. Ведь вполне реально с
небольшими затратами соединить офис с
провайдером услуг Internet с помощью UUCP,
поддерживая по этому соединению работу
электронной почты. Для небольших офисов это
превосходное и недорогое решение. На рис. 1.7
показан пример конфигурации сети, реализующей
UUCP-соединение.
Рис. 1.7. Пример соединения по протоколу
UUCP
Протокол UUCP поддерживается в ОС Linux
программой Тейлора (Taylor)
uucp. Программа
uucp активно
использует файлы конфигурации для идентификации
удаленных хостов, с которыми нужно установить
соединение для передачи электронной почты. Хост
UUCP сервис-провайдера Internet может
определяться программой
sendmail как "интеллектуальный хост", и
тогда все исходящие сообщения с почтового
сервера под управлением Linux будут по протоколу
UUCP пересылаться провайдеру. Этот процесс более
детально рассмотрен в лекции 9, "Протокол UUCP".
SMTP
Простой протокол передачи почты SMTP (Simple
Mail Transfer Protocol) был разработан как
протокол для передачи сообщений электронной
почты между хостами сети Internet. Применение
общего протокола дает возможность хосту любого
типа подключаться к сети и передавать почту
любому хосту в сети Internet. Сила протокола
SMTP в простоте его командной структуры (отсюда
и название — простой (simple)). Для
разработчиков программного обеспечения
достаточно просто создавать программы агенты МТА
для связи с другими хостами посредством SMTP.
Стандартные команды протокола SMTP требуют таких
же простых стандартных ответов. Все программы
агенты передачи сообщений (МТА) должны всего
лишь проанализировать коды ответов протокола
SMTP, чтобы определить, успешно ли прошла
пересылка почты. На рис. 1.8 показан пример
работы SMTP-соединения.
Рис. 1.8. Пример соединения по протоколу
SMTP
Протокол SMTP для доставки электронной почты
использует имена хостов. Вполне закономерно, что
из-за огромного количества хостов в сети
Internet был просто необходим метод их
уникальной идентификации. Была разработана
система доменных имен (Domain Name System —
DNS), согласно которой в мире создавались домены
(или зоны), управляемые сервером имен. В функции
сервера имен входит управление базой данных имен
хостов и их преобразование в IP-адреса. Хост
может определить IP-адрес другого хоста с
помощью протокола DNS, соединившись с
соответствующим сервером имен удаленного домена.
Для облегчения хостам задачи поиска
соответствующего сервера DNS, ответственного за
определенный домен, была разработана иерархия
доменных имен.
Для соединения с другими хостами протоколу SMTP
необходимо также наличие IP-соединения. Если
хост подключен к сети Internet , то проблемы нет.
Однако, как правило, небольшие офисные сети не
имеют постоянного соединения с сетью Internet,
что становится источником проблемы.
В
этом случае провайдерами Internet предлагается
периодическое кратковременное подключение
почтового сервера организации к сети Internet
для передачи сообщений электронной почты. Для
подключения к сети Internet сервера электронной
почты на базе Linux посредством стандартного
модема по обычной телефонной линии используется
протокол РРР (Point-to-Point Protocol). После
установления РРР-соединения возможен обмен IP-пакетами
между почтовым сервером под управлением Linux и
сетью Internet. Затем с помощью протокола SMTP
почтовые сообщения, помещенные в очереди на
доставку, могут быть переданы почтовым сервером
Linux, а также приняты все входящие сообщения от
провайдера услуг сети Internet. Более детально
этот процесс описывается в лекции 5, "Протокол
SMTP". На рис. 1.9 представлен пример
организации такого соединения.
Рис. 1.9. Пример организации
РРР-соединения с Internet
Протоколы
пользовательских почтовых агентов (MUA)
Когда пользователь почтовой системы работает с
консолью почтового сервера Linux, то он может
использовать все стандартные программы —
пользовательские агенты, рассмотренные нами
ранее. При этом он может получать доступ
непосредственно к своему почтовому ящику. Однако
для небольшого офиса не совсем удобно каждому
пользователю регистрироваться на Linux-сервере и
открывать свою консольную сессию только для
чтения почты. Поэтому были разработаны два
различных протокола MUA, с помощью которых
удаленный клиент может получать доступ к своему
почтовому ящику на сервере под управлением ОС
Linux. Эти протоколы будут рассмотрены ниже.
Протокол POP3
Простейшим пользовательским протоколом MUA
является протокол POP3 (Post Office Protocol). В
настоящее время текущая версия протокола — 3,
отсюда и его название POP3. Протокол POP3
позволяет считывать почтовые сообщения
удаленному сетевому клиенту из своего
электронного почтового ящика на сервере
электронной почты на базе Linux. При этом каждое
сообщение должно быть загружено на рабочую
станцию клиента. Только после этого клиент
сможет прочесть его. Часто сообщение удаляется
из почтового ящика на сервере при загрузке на
рабочую станцию. Это может создать определенные
проблемы для клиентов, которые соединяются с
почтовым сервером с различных рабочих станций.
Дело в том, что сообщения электронной почты
загружаются на ту рабочую станцию, с которой
клиент обратился в данный момент к своему
почтовому ящику на сервере. То есть сообщения
для одного сотрудника могут быть разбросаны по
нескольким рабочим станциям, что приводит к
путанице. В лекции 6, "Протокол POP3", подробно
рассматривается работа этого протокола. На рис.
1.10 приведен пример работы протокола POP3.
Рис. 1.10. Пример сеанса по протоколу
POP3
Протокол IMAP
С
целью устранения недостатков протокола POP3 (в
частности, проблемы "рассеивания" сообщений по
различным рабочим станциям) был разработан
протокол интерактивного доступа к электронной
почте Interactive Mail Access Protocol (IMAP).
Протокол IMAP позволяет клиенту создавать на
почтовом сервере различные папки и помещать туда
сообщения для хранения. Соединение с сервером
почты по протоколу IMAP может устанавливаться с
любой рабочей станции. При этом пользователи
получают доступ к одним и тем же папкам и
почтовым ящикам. А главное — сообщения
загружаются на рабочую станцию только для
отображения. Физически их копии продолжают
оставаться на сервере в папке, где они хранились
до загрузки клиенту.
Однако хранение копий сообщений на сервере
создает определенные проблемы для администратора
почтовой системы, так как дисковое пространство
при этом довольно быстро заполняется. Управление
дисковым пространством почтового сервера
прерогатива администратора почтовой системы,
поэтому ему следует подумать прежде чем включать
поддержку IMAP у себя в системе. Более подробно
протокол IMAP рассматривается в лекции 7, "Протокол
IMAP". На рис. 1.11 представлен пример
использования протокола IMAP клиентом для
получения почтовых сообщений.
Рис. 1.11. Пример сеанса по протоколу
IMAP
Резюме
В
этой лекции мы коснулись истории и теории
применения систем электронной почты в офисной
среде. Электронная почта начиналась с обмена
электронными сообщениями между пользователями
одного мэйнфрейма. Когда мэйнфреймы смогли
общаться с другими мэйнфреймами, электронная
почта стала решением проблемы общения
пользователей в этих сетях. Поддержка систем
электронной почты была заложена в ОС UNIX с
самого начала ее существования. Системы
электронной почты в среде UNIX подразделяются на
программы — агенты передачи сообщений Mail
Transfer Agents (MTAs) и пользовательские агенты
Mail User Agents (MUAs). За доставку сообщений
пользователям отвечают агенты МТА вне
зависимости от того, находится ли получатель на
локальной или удаленной UNIX-системе. Программы
MUA отвечают за разрешение доступа удаленного
клиента к своему электронному почтовому ящику на
сервере по сети. Системы электронной почты для
локальных сетей широко используют сетевые диски
с совместным доступом. В этих системах
используются специализированные протоколы для
хранения сообщений в базах данных электронных
почтовых ящиков. Очень часто для маршрутизации
сообщений между базой данных и другим хостом
локальной сети требуются внешние устройства. По
мере развития открытых систем разрабатывались и
открытые сетевые протоколы для реализации
стандартных методов для передачи информации по
сети Internet. Были разработаны протоколы UUCP и
SMTP для реализации в МТА стандартного метода
передачи сообщений удаленным хостам. Клиенты
могут использовать программное обеспечение MUA,
которое реализует протоколы POP3 и IMAP для
получения почтовых сообщений с сервера.
|