Электронная почта

Электронная почта.

Статьи по теме
Искать по теме

1. Принципы организации систем электронной почты

За последние 30 лет системы электронной почты потерпели существенные изменения. С той поры, когда пользователи мейнфрейма обменивались короткими текстовыми сообщениями, до времен, когда друзья могут посылать свои фотографии через интернет, системы электронной почты прошли длинный путь. Для выполнения электронной почтой новых функций были разработаны и внедрены протоколы, которые позволяли обмениваться не только текстовой, но и двоичной информацией между двумя людьми (т.е. файлами). Основным толчком для развития большинства этих протоколов послужил бурный рост сети интернет. С ростом числа пользователей требования к электронной почте сильно изменились. В прошлом системы электронной почты являлись лишь небольшими вспомогательными подсистемами мейнфреймов, уступая первенство корпоративным приложениям. Сегодня же провайдеры интернет (Internet Service Provider) выделяют отдельные системы только для обслуживания электронных почтовых ящиков своих клиентов.

В принципе, системы электронной почты эксплуатируются уже довольно длительно время. Еще в 70-х годах XX века многие пользователи мейнфреймов включали в комплект поставки программы, которые позволяли пользователям, включенным в систему, обмениваться короткими сообщениями. При этом сообщение появлялось на консоли пользователя, который был в этом момент подключен к системе. Эти системы обмена электронными сообщениями, хотя и были не очень удобными, положили начало созданию систем электронной почты.

Следующим логическим шагом было представление пользователю возможности посылать сообщение другому пользователю, который в данный момент не был подключен к системе. Для этой цели была разработана сложная система, позволившая каждому пользователю работать с отдельной областью на мейнфрейме, которая называлась почтовым ящиком (mailbox). Теперь, чтобы послать сообщение другому пользователю, нужно было запустить специальную почтовую программу,

с помощью которой сообщение помещалось в почтовый ящик адресата. Затем другой пользователь также запускал почтовую программу, которая проверяла наличие сообщений в его почтовом ящике.

С развитием систем связи мейнфреймов все более сложными становились и

программы для работы с электронной почтой. Если посылать сообщение пользователю другого мейнфрейма, программа обработки почты должна была опознать его и поместить в почтовый ящик адресата на соответствующем мейнфрейме. С тех пор имена мейнфремов стали определяющим критерием, и два мейнфрейма уже не могли иметь одинаковые имена, если они принадлежали к одной сети.[1,с.27]

В 80-х годах ХХ века в компании AT&T Bell Labs была разработана OC UNIX, которая приобрела популярность в университетской среде. Она широко распространилась на компьютерах, меньших, чем мейнфреймы, но имевших вычислительную мощность сравнимую с ними, и использовались для решения научных и математических задач в интересах профессорско-преподавательского состава и студентов. Эти компьютеры оперировали еще на принципах мейнфреймов, но система UNIX уже требовала регистрации пользователей в системе с терминалов ввода-вывода, подключенных к миникомпьютеру.

Операционная система UNIX кардинальным образом изменила процесс разработки и внедрения программного обеспечения. На смену громоздким монолитным программам, выполняющих все функции, пришли меньшие по размеру, специализированные программы, которые более эффективно выполняли отдельные функции. Все это оказало огромное влияние и на системы электронной почты. Функции обработки электронной почты теперь были разделены между несколькими различными программами, выполнявшими одну определенную функцию. Все эти функции могли отделяться от программ, и для их выполнения создавались новые более эффективные программы. Рассмотрим структуру почтовой системы.

В модели электронной почты OC UNIX для каждого пользователя предусмотрен локальный почтовый ящик, в котором для него и хранятся все сообщения. Для работы с почтовым ящиком имеются специальные программы, которые называются почтовыми пользовательскими агентами, сокращенно MUA (Mail User Agent).

Почтовые пользовательские агенты не принимают сообщения от удаленных компьютеров, они лишь отображают содержимое почтового ящика пользователя.

Вместе с пользовательским агентом (MUA), отображающим сообщения электронной почты из почтового ящика пользователя, существует необходимость в еще одном типе программ, в функцию которого входило бы собственно отправление сообщений. Для выполнения этих функций и был разработан агент передачи сообщений, сокращенно – MTA (Mail Transfer Agent). Агенты MTA отвечают за пересылку сообщений электронной почты от одного пользователя другому. Получателями могут быть как пользователи одной системы, так и удаленных систем. Агент передачи сообщений отвечает также за маршрутизацию почтового сообщения всеми доступными средствами для доставки его получателю. Часто между передающим и принимающим хостами бывает несколько почтовых узлов.[2,с.29]

Если агент передачи сообщений не может найти прямого пути к агенту передачи сообщений получателя, он должен определить другое подходящее место (сервер) для пересылки сообщения, либо вернуть его отправителю с пометкой о невозможности отправки.

MTA работает по протоколу SMTP, и его одного, в принципе, уже достаточно для создания системы электронной почты. Когда-то давно именно так и было и для доступа к своему почтовому ящику требовалось обладать определенными техническими знаниями.

Однако прогресс не стоит на месте, MTA, получая письмо, помещает его в почтовый ящик пользователя на сервере, к которому последний должен получить доступ, желательно наиболее простым и понятным способом. Вот здесь на сцену выходит агент доставки почты, сокращенно – MDA (Mail Delivery Agent), его задача по запросу почтового клиента передать ему почту из почтового ящика на сервере. MDA может работать по протоколам POP3 или IMAP, в ряде случаев для "общения" почтового клиента и агента доставки могут применяться собственные протоколы, обладающие расширенной функциональностью, например MAPI (Exchange Server).

Вопреки распространенному заблуждению, MDA не имеет никакого отношения к процессу передачи почты. Это прерогатива MTA. Если провести аналогию, MTA

можно представить как почтовое отделение, которое занимается приемом и отправкой почты, а MDA с почтальоном, который приносит пришедшую корреспонденцию к вам домой. Если почтальон заболел, то это никак не скажется на работе почты, просто вы не получите письма на дом. Также и MDA, его отказ не приводит к неработоспособности почтового сервера, становится недоступно только получение почты почтовым клиентом, в то же время к ней можно спокойно получить доступ другими путями, например, через веб интерфейс.

2. Протоколы электронной почты

Использование открытых исходных текстов программ означает, что должны использоваться соответствующие протоколы, доставляющие сообщения между хостами и от хостов – клиентам. Существует набор стандартных протоколов, которые активно используются программами с открытым кодом. Благодаря этому достигается взаимодействие таких программ. Рассмотрим протоколы, которые используются для передачи сообщений электронной почты.

Протоколы MTA применяются для передачи сообщений электронной почты от одного хоста к другому. Каждый из нижеприведенных протоколов может использоваться хостом как для установления исходящего соединения с удаленным хостом, так и для приема входящего соединения от него.

Протокол UUCP (Unix-to-Unix-CoPy) (копирование с UNIX на UNIX) был разработан еще для первых систем на базе ОС UNIX. Сначала он использовался в качестве средства передачи данных между двумя UNIX-хостами с помощью дешевых модемов по обычным телефонным линиям. Со временем ему на смену пришли другие протоколы, которые используют высокопроизводительные соединения через локальные и глобальные сети передачи данных.

С ростом популярности интернет сервис-провайдеры стали использовать системы на базе ОС UNIX для поддержки удаленных соединений по телефонным линиям со своими клиентами. Тогда настало время вспомнить о UUCP. Ведь вполне реально с небольшими затратами соеденить офис с провайдером услуг интернет с помощью UUCP, поддерживая по этому соединению работу электронной почты.

Для небольших офисов это превосходное и недорогое решение.

Протокол UUCP поддерживается в ОС Linux программой Тейлора (Taylor) uucp. Программа uucp активно использует файлы конфигурации для идентификации удаленных хостов, с которыми нужно установить соединение для передачи электронной почты. Хост UUCP сервис-провайдера интернет может определяться программной, например sendmail как "интеллектуальный хост", и тогда все исходящие сообщения с почтового сервера под управлением Linux будут по протоколу UUCP пересылаться провайдеру. [1,с.212]

Простой протокол передачи почты SMTP (Simple Mail Transfer Protocol) был разработан как протокол для передачи сообщений электронной почты между хостами сети интернет. Применение общего протокола дает возможность хосту любого типа подключаться к сети и передавать почту любому хосту в сети интернет.

Сила протокола SMTP в простоте его командной структуры (отсюда и название – простой (simple)). Для разработчиков программного обеспечения достаточно просто создавать программы агенты MTA для связи с другими хостами посредством

SMTP. Стандартные команды протокола SMTP требуют таких же простых стандартных ответов. Все программы агенты передачи сообщений (MTA) должны всего лишь проанализировать коды ответов протокола SMTP, чтобы определить, успешно ли прошла пересылка почты.

Протокол SMTP для доставки электронной почты использует имена хостов.

Вполне закономерно, что из-за огромного количества хостов в сети интернет был просто необходим метод их уникальной идентификации. Была разработана система доменных имен (Domain Name System – DNS), согласно которой в мире создавались домены (или зоны), управляемые сервером имен. В функции сервера имен входит управление базой данных имен хостов и их преобразование в IP-адреса.

Хост может определить IP-адрес другого хоста с помощью протокола DNS, соединившись с соответствующим сервером имен удаленного домена. Для облегчения хостам задачи поиска соответствующего сервера DNS, ответственного за определенный домен, была разработана иерархия доменных имен.

Для соединения с другими хостами протоколу SMTP необходимо также наличие IP-соединения. Если хост подключен к сети интернет, то проблемы нет. Однако, некоторые небольшие офисные сети не имеют постоянного соединения с сетью интернет, что становится источником проблемы. В этом случае провайдерами интернет предлагается периодическое кратковременное подключение почтового сервера организации к сети интернет для передачи сообщений электронной почты.

После установления интернет соединения, с помощью протокола SMTP почтовые сообщения, помещенные в очереди на доставку, могут быть переданы почтовым сервером Linux, а также приняты все входящие сообщения от провайдера услуг сети интернет.

Также были разработаны два различных протокола, с помощью которых удаленный клиент может получать доступ к своему почтовому ящику на сервере под управлением ОС Linux. Эти протоколы будут рассмотрены ниже.

Простейшим пользовательским протоколом является протокол POP3 (Post Of-fice Protocol). В настоящее время текущая версия протокола – 3, отсюда и его название POP3. Протокол POP3 позволяет считывать почтовые сообщения удаленному сетевому клиенту из своего электронного почтового ящика на сервере электронной почты на базе Linux. При этом каждое сообщение должно быть загружено на рабочую станцию клиента. Только после этого клиент сможет прочесть его. Часто сообщение удаляется из почтового ящика на сервере при загрузке на рабочую станцию. Это может создать определенные проблемы для клиентов, которые соединяются с почтовым сервером с различных рабочих станций. Дело в том, что сообщения электронной почты загружаются на ту рабочую станцию, с которой клиент обратился в данный момент к своему почтовому ящику на сервере. То есть сообщения для одного сотрудника могут быть разбросаны по нескольким рабочим станциям, что приводит к путанице.

С целью устранения недостатков протокола POP3 (в частности проблемы "рассеивания" сообщений по различным рабочим станциям) был разработан протокол интерактивного доступа к электронной почте Interactive Mail Access Protocol (IMAP). Протокол IMAP позволяет клиенту создавать на почтовом сервере различные папки и помещать туда сообщения для хранения. Соединение с сервером почты по протоколу IMAP может устанавливаться с любой рабочей станции.

При этом пользователи получают доступ к одним и тем же папкам и почтовым ящикам. А главное – сообщение загружаются в рабочую станцию только для отображения. Физические их копии продолжают оставаться на сервере в папке, где они хранились до загрузки клиенту.

Однако хранение копий сообщений на сервере создает определенные проблемы для администрирования почтовой системы, так как дисковое пространство при этом довольно быстро заполняется. [4,с.1]

3. Процесс функционирования электронной почты

Процесс отправки почты состоит из создания сообщения и нажатия кнопки "Отправить" в почтовом клиенте. Почтовый клиент соединяется с МТА по протоколу SMTP и первым делом сообщает свои учетные данные. Авторизовав пользователя, MTA принимает сообщение и пытается доставить его дальше.

Вообще-то авторизация не является обязательной процедурой для MTA, но без авторизации мы получим открытый релей, т.е. любой может воспользоваться нашим сервером для пересылки почты, а как спамеры обрадуются! В настоящее время открытые релеи возникают в основном из-за ошибок настройки сервера. Однако вполне допустима ситуация, когда MTA без авторизации принимает почту от доверенных пользователей, например из локальной сети предприятия. Для авторизации MTA может использовать собственный список пользователей, системный список, списки пользователей LDAP или AD. Также существует способ: авторизация POP прежде SMTP, когда пользователь перед отправкой почты авторизуется на MDA, который, в свою очередь подтверждает аутентификацию пользователя для MTA.

Следующим шагом MTA анализирует служебную информацию письма, определяя домен получателя, если он относится к доменам обслуживаем данным МТА, производится поиск получателя и письмо помещается в его ящик. Так произошло, если бы студент написал письмо другим студентам.

Если домен получателя не обслуживается MTA, формируется DNS-запрос, запрашивающий MX-записи для данного домена. MX-запись представляет особый вид DNS-записи, которая содержит имена почтовых серверов, обрабатывающих входящую почту для данного домена. MX-записей может быть несколько, в этом случае MTA пробует последовательно установить соединение, начиная с сервера с наибольшим приоритетом. При отсутствии MX-записи запрашивается A-запись (запись адреса, сопоставляющая доменное имя с IP-адресом) и выполняется попытка доставить почту на указанный там хост. При невозможности отправить сообщение, оно возвращается отправителю (помещается в почтовый ящик пользователя) с сообщением об ошибке.[3, с.1]

Итак, сообщение получено и находится в почтовом ящике пользователя. Как его прочитать? Почтовое хранилище, где находятся ящики пользователей, может быть организовано самыми различными способами: начиная от банальных папок и фалов, заканчивая базой данных. Не обладая техническими знаниями, прочитать собственную почту не удастся. Но разве это должно волновать студентов? Для них процесс получения почты сводится к нажатию кнопки "Получить" в почтовом клиенте.

Для получения почты клиент устанавливает соединение с MDA по протоколу POP3 или IMAP, обязательно передавая данные для авторизации. MDA проверяет наличие пользователя в списках и, при успешной проверке, передает клиенту все новые сообщения находящиеся в его почтовом ящике. Студент djony получает свою корреспонденцию и может работать с ней удобным ему способом.

955 группа получила письмо от студента djony и написала ему ответ, что на паре всем присутствующим ставят автоматы. Сервер, обслуживающий домен, проводит точно такие же действия и пробует передать почту нашему серверу. Получив входящее сообщение MTA, как и в случае с локальным отправителем, проверяет домен получателя, если он входит в число обслуживаемых MТА, обработка сообщения продолжается, иначе сервер отказывается принимать почту.

После проверки домена проверяется получатель, если он присутствует в списке пользователей, сообщение доставляется в его ящик, в противном случае возможны два варианта: отказ от приема сообщения или прием сообщения в общий почтовый ящик (ящик администратора). С одной стороны такая настройка увеличивает число принимаемого спама, с другой позволяет не потерять письма с ошибками в написании адреса.

Литература

1. Турчин Д.Е. Информационные технологии. – Кемерово: КузГТУ, 2012.

2. Кудинов Ю.И., Пащенко Ф.Ф. Основы современной информатики. – 2-е изд. испр. – М.: Издательство "Лань", 2011.

3. Могилев А.В. Информатика: учеб. пособие для студентов вузов / А.В. Могилев, Н.И. Пак, Е.К. Хеннер; под ред. Е.К. Хеннера – 6-е изд., стер. – М.: Издательский центр "Академия", 2008.

4. Макарова Н.В., Волков В.Б. Информатика: Учебник для вузов. – СПб.: Питер, 2011.