В статье автор показывает принцип отправки и приёма электронных писем через сервер mail.ru.
Ключевые слова: сервер, электронное письмо, mail.
В современном мире нет человека, который хоть раз бы не пользовался телекоммуникационной услугой электронной почты, для отправки различной информации: текстовое письмо, фотографии или небольшие видеоролики. В качестве примера рассмотрим почтовый сервис, размещённый на домене mail.ru.
Понятие электронная почта (англ. e-mail [iˈmeɪl], от англ. electronic mail) — технология и служба по пересылке и получению электронных сообщений (называемых «письма», «электронные письма» или «сообщения») между пользователями локальной вычислительной сети (или по Интернету).
Электронная почта по составу элементов и принципу работы практически повторяет систему обычной (бумажной) почты, заимствуя:
— термины — почта, письмо, конверт, вложение, ящик, доставка и другие;
— характерные особенности — простоту использования, задержки передачи сообщений, достаточную надёжность и, в то же время, отсутствие гарантии доставки.
Сервис электронной почты, размещённый на домене mail.ru включает следующие основные функции по отправке и получению электронной почты пользователями:
MUA (англ. mail user agent — почтовый агент пользователя; в русской нотации закрепился термин почтовый клиент) — программа, обеспечивающая пользовательский интерфейс, отображающая полученные письма и предоставляющая возможность отвечать, создавать, перенаправлять письма.
Почтовый клиент — это то, что видит перед глазами пользователь в своём браузере.
Основные функции почтовых клиентов — это приём сообщений, обеспечение их просмотра, сортировка сообщений, автоматизация создания ответных сообщений и поддержка актуальной адресной книги (рисунок 1).
Рис. 1. Основные функции сервера mail.ru по отправке и получению электронной почты пользователями
Основные функции сервера mail.ru включают следующие элементы:
MTA (англ. mail transfer agent — агент пересылки почты) — отвечает за пересылку почты между почтовыми серверами; как правило, первый MTA в цепочке получает сообщение от MUA, последний передаёт сообщение к MDA.
Данная программа работает “за кулисами”, а пользователи имеют дело с другой программой — клиентом электронной почты (англ. mail user agent, MUA).
MDA (англ. mail delivery agent — агент доставки электронной почты) -
программа, принимающая входящие электронные письма и доставляющая их на электронный ящик получателя (если адрес назначения расположен на том же компьютере) или перенаправляющая их на другой почтовый сервер (если адрес назначения расположен на другом компьютере). Так же MDA отвечает за доставку электронной почты конечному пользователю [1].
Принцип работы запроса от персонального компьютера (ПК) пользователя до сервера mail.ru (рисунок 2):
— пользователь запускает на своем ПК Web-браузер (браузер, например, Yandex);
— пользователь вводит в браузере название сайта и нажимает клавишу Enter;
— компьютер пользователя начинает проверять свою таблицу ARP (англ. Address Resolution Protocol — протокол определения адреса) на наличие совпадений имён (названий сайтов) с IP-адресами, которые соответствуют данным именам или имени, которое ввёл в браузер пользователь. Если компьютер не находит в своей таблице ARP такой записи, то он формирует ARP-запрос на ближайший сервер DNS на котором хранятся записи имён и их IP-адреса. Получив от DNS сервера IP-адрес интересующего пользователя сайта, компьютер направляет запрос на открытие данного сайта в браузере пользователя.
Рис. 2. Ввод названия сайта в браузер Yandex
После нажатия клавиши “Enter”, открывается окно стартовой страницы сайта mail.ru (рисунок 3).
Рис. 3. Стартовая страница mail.ru
В появившемся окне пользователь в поле “Имя (Логин)” набирает своё вымышленное имя, например, bbb@mail.ru и пароль, который он сам придумал (рисунки 4, 5).
Рис. 4. Ввод имени (логина)
Рис. 5. Ввод пароля
После ввода данных пользователем и нажатия клавиши “Войти” (рисунок 6) начинается процесс проверки подлинности введенных данных через браузер на сайте mail.ru, по протоколу SMTP.
Рис. 6. Нажатие клавиши “Войти”
После нажатия клавиши ”Enter” компьютер пользователя начинает проверять свою таблицу ARP на наличие совпадений имён (названий сайтов) с IP-адресами, которые соответствуют данным именам или имени, которое ввёл в браузер пользователь. Если компьютер не находит в своей таблице ARP такой записи, то он формирует ARP-запрос на ближайший сервер DNS на котором хранятся записи имён и их IP-адреса.
Получив от DNS сервера IP-адрес интересующего пользователя сайта, компьютер направляет запрос на открытие данного сайта в браузере пользователя.
На рисунке 7 показано прохождение запроса через сеть оператора связи от ПК пользователя до сервера mail.ru.
Рис. 7. Прохождение запроса от ПК пользователя до сервера mail.ru через сеть передачи данных оператора связи
Первоначальный запрос от программного обеспечения персонального компьютера пользователя запрашивает сервер mail.ru об отправке основной страницы mail.ru браузеру персонального компьютера пользователя. Web-сервер mail.ru настроен таким образом, что страница mail.html является стандартной, и в ней содержится основная страница почтового сервера mail.ru.
Программное обеспечение персонального компьютера абонента получает файл страницы от сервера mail.ru, браузер корректно отображает её в своем окне на персональном компьютере пользователя. На рисунке 8 приведена схема запроса пользовательского ПК к серверу mail.ru и ответа от сервера mail.ru.
Рис. 8. Схема запроса пользовательского ПК к серверу mail.ru и ответа от сервера mail.ru
Ниже описаны основные этапы согласования запросов и ответов с сервером mail.ru, а также алгоритм работы почтовой программы. Вся работа проходит за доли секунды (рисунок 8).
Этап 1 . Для получения Web-страницы от сервера mail.ru, персональный компьютер пользователя формирует и пересылает сообщение с заголовком НТТР. Как правило, протоколы используют заголовки как место для размещения используемой ими служебной информации. Этот заголовок НТТР содержит запрос get ( получить ) на получение нужного файла Web-страницы.
Этап 2 . Демонстрация ответа Web-сервера mail.ru. Сообщение начинается с заголовка НТТР с кодом возврата ( 200 ), означающим, как «ОК» («Хорошо»). Протокол НТТР определяет также другие коды возврата, таким образом, сервер может указать браузеру, сработал ли запрос. (Ещё один пример: при обращении к Web-странице, которая не была найдена, браузер пользователя получает ошибку НТТР 404 «not found» на экране монитора, т. е. передаётся код возврата НТТР 404.)
Этап 3 . Демонстрация сообщения Web-сервера mail.ru Web-браузеру ПК пользователя без заголовка НТТР. Данные по протоколу НТТР передаются при посылке нескольких сообщений, каждое с частью файла.
Чтобы не тратить впустую пространство при повторной посылке заголовков НТТР, содержащих ту же информацию, эти последующие сообщения просто опускают заголовок. Браузер пользователя получает на своём мониторе основную страницу сайта mail.ru
На рисунке 9 показан процесс замены MAC-адресов при передаче запроса по сети оператора связи до почтового сервера и обратно.
Рис. 9. Процесс передачи авторизации на сервере mail.ru пользователем
Физический смысл передачи запроса от ПК пользователя до почтового сервера, также при передаче и приёме электронных писем пользователей.
Сформированный сигнал от сетевой карты ПК, подключенной одним концом электрического патч-корда, оконцованного разъёмами RJ-45 с обоих концов, поступает на электрический абонентский порт с разъемом RJ-45 коммутатора (2 уровня) доступа.
Коммутатор (2 уровня) доступа начинает получать кадр Ethernet, одновременно проверяя поля MAC-адреса получателя и MAC-адреса отправителя. Если MAC-адреса отправителя нет в его таблице коммутации, то происходит автоматическая запись MAC-адреса и номера абонентского порта, откуда идёт запрос [2].
Таблица коммутации коммутатора (2 уровня) доступа представлена ниже.
Таблица 1
Таблица коммутации коммутатора (2 уровня) доступа
|
Номер электрического абонентского порта (номер сетевого оптического порта) |
MAC-адрес подключенного устройства к коммутатору (2 уровня) доступа (в такой таблице могут содержаться до 4000 MAC — адресов устройств) |
|
FE1 |
12-AD-43-AS-23–2A (MAC-адрес отправителя сетевой карты ПК пользователя) |
|
… |
… |
|
FE24 |
… |
|
GE1/1 |
02-SD-1Q-DF-25–5A (MAC-адрес получателя, т. е. порта маршрутизатора к которому подключена вся сеть, в которой находится пользователь) |
После обработки полученного кадра Ethernet коммутатор (2 уровня) доступа перенаправляет кадр Ethernet на другой свой оптический порт (SFP модуль), к которому подключен оптический маршрутизатор (граница сети абонентского доступа).
Оптический маршрутизатор начинает обрабатывать пришедший кадр Ethernet. Он распаковывает его до сетевого уровня, в полях IP-адресов которого записаны IP-адрес получателя и IP-адрес отправителя. Оптический маршрутизатор начинает полученный IP-адрес получателя сравнивать со своей таблицей маршрутизации (таблица 2).
Таблица 2
Таблица маршрутизации
|
Тип соединения (протокол) |
IP-адрес сети |
№ порта (за которым находиться данная сеть) |
|
С (напрямую соединён) |
192.168.0.1 |
FA0/0 |
|
O (протокол OSPF) |
192.168.224.1 |
FA4/0 |
|
O (протокол OSPF) |
192.168.224.2 |
FA4/0 |
Найдя необходимую запись в таблице маршрутизации, оптический маршрутизатор упаковывает IP-пакет обратно в кадр Ethernet.
Так же в кадре Ethernet он проверяет поля MAC-адресов получателя и отправителя, сверяет поле MAC-адреса получателя, убедившись в том, что данный MAC-адрес соответствует MAC-адресу его порта, к которому подключена вся сеть, в которой подключён абонент.
Во время коммутации кадра Ethernet происходят следующие процессы:
— в поле MAC-адреса получателя записывается MAC-адрес порта, к которому подключён другой оптический маршрутизатор;
— в поле MAC-адреса отправителя указывается MAC-адрес того порта, за которым располагается сеть, в которой находиться пользователь.
Кадр Ethernet передаётся на другой оптический маршрутизатор, где начинается такой же процесс смены MAC-адресов. В поле MAC-адреса получателя ставится MAC-адрес почтового сервера.
В поле MAC-адреса отправителя ставиться MAC-адрес порта оптического маршрутизатора, к которому подключен почтовый сервер mail.ru.
Кадр Ethernet поступает на порт почтового сервера. Сервер начинает проверять служебные заголовки [2, 3].
Почтовый сервер находит “поля” логин, пароль и, удостоверившись в их подлинности, даёт команду “ответ” на вход в почтовый ящик пользователя.
После процедуры подлинности логина и пароля пользователь заходит в свой почтовый ящик, где набирает электронное письмо и отправляет его другому пользователю. Письмо можно набрать, используя два варианта:
— на сайте mail.ru в браузере, например, Yandex;
— в программе почтового клиента, например, MS Outlook.
Далее будет рассмотрен процесс набора электронного письма пользователем и его отправка до почтового сервера (рисунок 10).
В браузере на сайте mail.ru или программе пользовательского почтового агента (MUA) пользователь набирает электронное письмо и прикрепляет текстовый файл, фотографию, голосовой (музыкальный) файл, которые по объёму информации не более 25 Мбайт. Файлы типа видеофильмы объёмом более 25 Мбайт будут прикреплены виде ссылки на облачное хранилище mail.ru.
Пользователь набирает текстовое электронное письмо на сайте mail.ru, в браузере Yandex, рисунок 10.
Рис. 10. Вид фрагмента электронного письма
В браузере на сайте или программе пользовательского почтового агента (MUA) пользователь набирает текстовое электронное письмо, которое при наборе сразу же преобразуется в двоичный код “0” и “1”. Для других форматов файлов (документы в формате Word, PDF, фотографии, голосовой (музыкальный) файл, видеофильм), которые будут прикреплены к электронному письму и отправлены, необходима ссылка на облачное хранилище, так как их объём превышает 25 Мбайт. Такие электронные письма будут передаваться по протоколу MIME [4, 5].
Бесплатно mail.ru предоставляет 10 Гбайт для хранения информации в своём облачном сервере.
Ограничение в 10 Гбайт устанавливает непосредственно сам владелец сервера mail.ru, чтобы защитить инфраструктуру электронной почты, но по протоколу SMTP нет правила ограничения передачи информации. После того как пользователь нажимает левой клавишей мыши на кнопку “отправить” (рисунок 11) появляется сообщение о том, что данное письмо отправлено (рисунок 12).
Рис. 11. Отправка электронного письма
После нажатия клавиши “отправить” начинает свою работу MTA (Mail Transfer agent) транспортный почтовый агент, который передаёт сообщение по строкам. Минимальное значение строки 78 символов, максимальное значение строки 998 символов, что примерно составляет максимально 1000 байт, рисунок 12 [6, 7].
Рис. 12. Передача электронного письма по строкам
Ограничение в 25 Мбайт на отправку электронной почты устанавливается непосредственно владельцем данного почтового сервера.
Другие файлы, превышающие 25 Мбайт, будут прикреплены виде ссылки на облачное хранилище, срок действия которой определяется владельцем почтового сервера.
На рисунке 13 показана отправка электронного письма.
Рис. 13. Сообщение об отправке электронного письма
В данной статье рассмотрен принцип передачи и приёма электронного письма от одного пользователя к другому.
Литература:
- Дэвид Х. Крокер RFC 822 «Standard for ARPA Internet Text Messages» опубликован в 1982 г. с. 47.
- Вито Амато «Основы организации сетей Cisco. Том 1», выпущенное в 2002 году стр. 512.
- Роберт Т. Бреден RFC 1123 «Требования к хостам Internet. Прикладные и служебные протоколы» опубликован в октябре 1989 г. с. 41.
- Джон К. Кленсин RFC 5321 «SMTP (Simple Mail Transfer Protocol)» опубликован в октябре 2008 года. стр. 57.
- RFC 5322 «SMTP (Simple Mail Transfer Protocol)»опубликован в сентябре 2008 года. стр. 95.
- Н. Боренштейн и Н. Фрид. RFC 1521 «Multipurpose Internet Mail Extensions (MIME) опубликован в сентябре 1993 г., стр. 75.
- К. Мур RFC 1522 «Расширения для заголовков сообщений MIME (Multipurpose Internet Mail Extensions) для текста, отличного от ASCII». Опубликован в сентябре 1993 года, с. 10.

