Тема 20. Электронная почта (Протокол smtp, pop3, imap, mime, Серверы почты и почтовые клиенты. Схема передачи/приема писем. Работа с почтой в режимах online, offline)
SMTP (англ. Simple Mail Transfer Protocol — простой протокол передачи почты) — это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.
SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Для приёма почты почтовый клиент должен использовать протоколы POP3 или IMAP.
Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого обычно используется запись типа MX (англ. Mail eXchange — обмен почтой) системы DNS. Если MX запись отсутствует, то для тех же целей может быть использована запись типа A. Некоторые современные реализации SMTP-серверов (например, Exim[1]) для определения сервера, обслуживающего почту в домене адресата, также могут задействовать SRV-запись (RFC 2782).
Широкое распространение SMTP получил в начале 1980-х годов. До него использовался протокол UUCP, который требовал от отправителя знания полного маршрута до получателя и явного указания этого маршрута в адресе получателя, либо наличия прямого коммутируемого или постоянного соединения между компьютерами отправителя и получателя.
Sendmail был одним из первых (если не первым) агентом отправки сообщений, который начал работать с SMTP. В настоящее время протокол SMTP является стандартным для электронной почты и его используют все клиенты и серверы.
Протокол был разработан для передачи только текста в кодировке ASCII, кроме того, первые спецификации требовали обнуления старшего бита каждого передаваемого байта. Это не даёт возможности отсылать текст на национальных языках (например, кириллице), а также отправлять двоичные файлы (такие как изображения, видеофайлы, программы или архивы). Для снятия этого ограничения был разработан стандарт MIME, который описывает способ преобразования двоичных файлов в текстовые. В настоящее время большинство серверов поддерживают 8BITMIME, позволяющий отправлять двоичные файлы так же просто, как текст.
Сервер SMTP — это конечный автомат с внутренним состоянием. Клиент передает на сервер строку команда<пробел>параметры<перевод строки>. Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом. Код ответа — число от 100 до 999, представленное в виде строки, трактующийся следующим образом:
2ХХ — команда успешно выполнена
3XX — ожидаются дополнительные данные от клиента
4ХХ — временная ошибка, клиент должен произвести следующую попытку через некоторое время
5ХХ — неустранимая ошибка
Текстовая часть ответа носит справочный характер и предназначен для человека, а не программы.
POP3 (англ. Post Office Protocol Version 3 — протокол почтового отделения, версия 3) используется почтовым клиентом для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP.
Предыдущие версии протокола (POP, POP2) устарели.
Стандарт протокола POP3 определён в RFC 1939. Расширения и методы авторизации определены в RFC 2195, RFC 2449, RFC 1734, RFC 2222, RFC 3206, RFC 2595.
Существуют реализации POP3-серверов, поддерживающие TLS и SSL.
Альтернативным протоколом для сбора сообщений с почтового сервера является IMAP
IMAP (англ. Internet Message Access Protocol — "Протокол доступа к электронной почте Интернета") — протокол прикладного уровня для доступа к электронной почте.
Аналогичен POP3, т.е. служит для работы со входящими письмами, однако обеспечивает дополнительные функции, в частности, возможность провести поиск по ключевому слову, не сохраняя почту в локальной памяти.
IMAP предоставляет пользователю богатые возможности для работы с почтовыми ящиками, находящимися на центральном сервере. Почтовая программа, использующая этот протокол, получает доступ к хранилищу корреспонденции на сервере так, как будто эта корреспонденция расположена на компьютере получателя. Электронными письмами можно манипулировать с компьютера пользователя (клиента) без необходимости постоянной пересылки с сервера и обратно файлов с полным содержанием писем. Для отправки писем используется протокол SMTP.
Почто́вая програ́мма (клиент электронной почты, почтовый клиент, мейл-клиент, мейлер) — программное обеспечение, устанавливаемое на компьютере пользователя, предназначенное для получения, написания, отправки и хранения сообщений электронной почты одного или нескольких пользователей (в случае, например, нескольких учётных записей на одном компьютере).
Большие почтовые программы, т. н. «всё в одной», такие как Mozilla Thunderbird, The Bat! и Microsoft Outlook, сегодня комбинируют работу MSA, MDA и MRA в одном приложении. Более простые почтовые агенты (англ. mail user agent, MUA), например Mutt, также являются почтовыми программами.
В отличие от почтового сервера, клиент электронной почты обычно отправляет сообщение не прямо на соответствующий сервер получателя, а на один и тот же почтовый сервер, который выступает как релей. Обычно это почтовый сервер провайдера или компании. Отправка почты чаще всего осуществляется по протоколу SMTP.
Клиент электронной почты принимает почту с одного или нескольких почтовых серверов, часто это тот же самый сервер, который служит для отправки. Приём почты обычно осуществляется по протоколам POP или IMAP.
Также в функции клиента электронной почты может входить: сортировка, хранение сообщений, поиск по архиву сообщений, ведение адресной книги, фильтрация принимаемых сообщений по разным критериям, конвертация форматов, шифрование, организация интерфейсов с офисными программами и другие функции.
Почтовый сервер, сервер электронной почты, мейл-сервер — в системе пересылки электронной почты так обычно называют агент пересылки сообщений (англ. mail transfer agent, MTA). Это компьютерная программа, которая передаёт сообщения от одного компьютера к другому. Обычно почтовый сервер работает «за кулисами», а пользователи имеют дело с другой программой — клиентом электронной почты (англ. mail user agent, MUA).
Схема взаимодействия
К примеру, в распространённой конфигурации агентом пользователя является Outlook Express. Когда пользователь набрал сообщение и посылает его получателю, почтовый клиент взаимодействует с почтовым сервером, используя протокол SMTP. Почтовый сервер отправителя взаимодействует с почтовым сервером получателя (напрямую или через промежуточный сервер — релей). На почтовом сервере получателя сообщение попадает в почтовый ящик, откуда при помощи агента доставки сообщений (mail delivery agent, MDA) доставляется клиенту получателя. Часто последние два агента совмещены в одной программе (к примеру, sendmail), хотя есть специализированные MDA, которые в том числе занимаются фильтрацией спама. Для финальной доставки полученных сообщений используется не SMTP, а другой протокол — часто POP3 или IMAP — который также поддерживается большинством почтовых серверов. Хотя в простейшей реализации MTA достаточно положить полученные сообщения в личный каталог пользователя в файловой системе центрального сервера («почтовый ящик»).
Виды работы с электронной почтой – off-line (вне связи) и on-line (на линии, на связи).
on-line – режим работы, при котором пользователь во время сеанса связи находится в контакте с почтовым сервером.
off-line – режим работы, когда пользователь подключается к почтовому серверу только для отправки (получения) предварительно подготовленной корреспонденции.
В настоящее время тип работы off-line является наиболее распространенным. Эффективную работу с электронной почтой в этом режиме обеспечивают клиентские почтовые программы.
MIME
Multipurpose Internet Mail Extensions (MIME, Multipurpose Internet Mail Extension — Многоцелевые Расширения Почты Интернета, произносится как слово mime) — стандарт, описывающий передачу различных типов данных по электронной почте, а также, шире, спецификация для кодирования информации и форматирования сообщений таким образом, чтобы их можно было пересылать по сети Internet