Компьютер, на который указывает запись MX, является почтовым сервером для данного почтового домена. Вся почта, направленная на адреса в данном почтовом домене, поступает на этот сервер, которые принимает решение о том, как дальше поступить с этой почтой.
Базовая структура сообщения электронной почты определена в RFC-822. Оно состоит из «внешней части» – заголовков протокола SMTP и самого письма.
Заголовок SMTP
Заголовок SMTP содержит в себе следующую информацию:
· имя отправляющего узла (имя сервера или компьютера пользователя, который обратился к серверу) — параметр сообщения HELO/EHLO.
· поле MAIL FROM:, содержащее адрес отправителя. Адрес может быть произвольным, в том числе и поддельным, поэтому его обычно не используют как идентифицирующий признак при фильтрации.
· поле RCPT TO: — наиболее важное поле для доставки почты, содержит электронный адрес получателя. Большинство почтовых систем в случае возможности проверяет, существует ли пользователь и может отказаться принимать почту, если пользователь, указанный в RCPT TO не существует. Именно это поле может быть использовано в качестве признака фильтрации.
Эти поля обычно не доступны конечным пользователям и существуют только при обмене между SMTP серверами.
Письмо (в терминологии протокола SMTP— 'DATA'), в свою очередь, состоит из заголовков и тела письма.
· заголовки письма, в которых указывается служебная информация и пометки почтовых серверов, через которые прошло письмо, пометки о приоритете, адрес и имя отправителя и получателя письма, тема письма и другая информация. Эта информация доступна получателю.
К сожалению, эта информация может быть легко подделана отправителем, что в реальности часто используется при рассылке SPAM. Поэтому использовать её в качестве признака фильтрации не представляется целесообразным.
Тело письма. В теле письма находится, собственно, текст письма. Согласно стандарту, в теле письма могут находиться только символы ASCII. Поэтому при использовании национальных кодировок или различных форм представления информации (HTML, RTF, бинарные файлы) текст письма должен кодироваться по стандарту MIME (см. ниже).
Как уже указывалось, основой для передачи почтовых сообщений служит протокол SMTP.
Изначально SMTP содержал 14 команд, наиболее используемыми являются:
HELO hostname (может использоваться EHLO)
- первая команда сеанса, hostname – доменное имя вызывающего хоста (клиента).
MAIL FROM: email_адрес_от_кого
- обратный адрес.
RCPT TO: email_адрес_кому
- адрес получателя (в случае нескольких адресатов команда повторяется для каждого адресата).
DATA
- начало ввода текста сообщения; сервер посылает промежуточный положительный отклик 354 и рассматривает все последующие строки в качестве текста (тела) сообщения; конец ввода – строка состоящая из одной точки. При необходимости, перед текстом сообщения вводятся поля заголовка, обычно это делает почтовая программа. Каждое поле заголовка должно начинаться с новой строки. Между заголовком и текстом сообщения должна быть одна пустая строка.
QUIT
- конец связи.
Далее появился так называемый расширенный SMTP(ESMTP). Не все серверы поддерживают команды ESMTP и каждый сервер может поддерживать какое-то свое подмножество ESMTP-команд, в том числе нестандартных. Для того, чтобы выяснить, какие дополнительный команды поддерживаются, следует вместо HELO подать команду EHLO.
Конкретный перечень дополнительных команд согласовывается при установлении соединения между серверами.
На первом этапе пользователь готовит письмо, используя так называемого пользовательского агента.
Пользовательский агент является клиентской программой пользователя для работы с электронной почтой, его функции:
· создание нового сообщения и передача его транспортному агенту для дальнейшей обработки и доставки;
· презентация, хранение, удаление и каталогизирование почтовых сообщений;
· получение сообщений с почтового сервера;
· передача на сервер исходящей почты (или SMTP сервер), это делается по протоколу SMTP, используя TCP, серверный порт 25, адрес конкретного SMTP-сервера должен быть прописан в пользовательской программе;
На сервере работает так называемый транспортный агент, его задача (упрощенно) выглядит так:
· опрос DNS на предмет имени и адреса почтового сервера адресата сообщения;
· соединение с почтовым сервером адресата и передача ему почтового сообщения;
· управление очередью сообщений, отложенный и повторный вызов агентов доставки в случае невозможности немедленной доставки сообщения;
· возврат сообщений, которые по каким-либо причинам невозможно доставить по назначению.
Сервер-отправитель связывается с сервером получателем по протоколу SMTP (сервер-отправитель играет при этом роль клиента), используя TCP, порт 25 и пытается передать ему почтовое отправление. Сервер-получатель проверяет наличие у себя соответствующего адресата, объем передаваемого сообщения, наличие места в почтовом ящике адресата, ряд проверок, связанных с борьбой со SPAM, и помещает письмо в почтовый ящик пользователя. На этом роль SMTP протокола завершена.
Это сильно упрощённая модель доставки электронной почты. Она рассматривается в основном с точки зрения возможной фильтрации трафика электронной почты.
Далее адресат каким-то образом должен получить письмо из своего почтового ящика. Для получения сообщений с почтового сервера и чтения писем пользователи обычно применяют почтовые клиентские программы, использующие протоколы POP3 или IMAP4. Они также используют в качестве транспортного протокол TCP, работают по технологии “клиент - сервер”.
При подключении естественно требуется аутентификация пользователя, обычно с помощью ввода логина (имени пользователя) и соответствующего пароля.
POP3 (Post Office Protocol - Version 3, RFC-1939).
POP3-сервер прослушивает TCP-порт 110. Если клиент хочет воспользоваться услугами POP3-сервера, то устанавливает с ним TCP связь. По установлении связи POP3-сервер посылает клиенту уведомление (например, +OK POP3 server ready) и сессия переходит в фазу авторизации (см. также RFC-1734, -1957). После этого может производиться обмен командами и откликами.
Команды POP3 состоят из ключевых слов (3-4 символа), за которыми могут следовать аргументы. Каждая команда завершается парой символов CR-LF. Как ключевые слова, так и аргументы могут содержать только печатаемые ASCII-символы. В качестве разделителя используются символы пробела. Каждый аргумент может содержать до 40 символов.
Для целей разграничения доступа из команд POP3 можно использовать
USER name, где name – характеризует почтовый ящик сервера;
PASS string (string – пароль для доступа к почтовому серверу).
Вся информация передаётся в открытом виде и может использоваться при фильтрации.
IMAP4(Internet Message Access Protocol, Version 4, RFC-2060)
IMAP4-сервер прослушивает TCP-порт 143. Это достаточно сложный протокол, он обслуживает более 20 различных команд клиента по управлению состоянием своей почты. Подробное описание всех команд и ответов IМАР4-сервера можно найти в RFC-2060.
Команда LOGIN идентифицирует клиента серверу и передает пароль пользователя открытым текстом. Эта информация также может быть использована для фильтрации.
Основное отличие POP3 и IMAP4 состоит в том, что POP3 ориентирован на хранение и обработку почтовых сообщений на клиентской машине. Он позволяет скачать с сервера все вновь пришедшие письма (с возможностью оставить копии на сервере). Почтовая клиентская программа позволяет сортировать письма, раскладывать по папкам, удалять и так далее.
IMAP4 ориентирован на хранение и обработку почтовых сообщений непосредственно на сервере. IMAP4 позволяет управлять каталогами (папками) удаленных сообщений так же, как если бы они располагались на локальном компьютере. IMAP4 позволяет клиенту создавать, удалять и переименовывать почтовые ящики, проверять наличие новых сообщений и удалять старые.
До сих пор речь шла о протоколах передачи и чтения почтовых сообщений и, соответственно, о передаваемых командах и служебной информации (заголовках почтовых сообщений). В тоже время большой интерес представляет и возможность фильтрации по признакам внутри самого письма.
Изначально, в соответствии с RFC 822, в теле письма, то есть в самом тексте можно было использовать только символы US-ASCII (латинские буквы, цифры, знаки препинания, некоторые специальные символы, всего 128). Их сочетания легко можно было использовать в качестве признака фильтрации. В дальнейшем появилась так называемая расширенная таблица (еще 128 символов) и на её базе появились различные кодировки кириллического алфавита. Среди них наиболее популярной были KOI8-R, CP1251 (Windows-1251). Не останавливаясь на их особенностях, можно только сказать, что использование в качестве фильтрующих признаков русских букв (и слов соответственно) не давало хорошего результата с учетом возможности различной кодировки.
По мере развития электронной почты появилась потребность передавать в почтовых сообщениях данные различных типов:
· текстовую информацию на различных языках,
· графические изображения,
· видеопоследовательности,
· голосовые сообщения (аудиоинформацию),
· и просто, бинарные файлы;
Для этих целей был предложен стандарт MIME (Multipurpose Internet Mail Extention, RFC-2045-49).
Многоцелевое расширение интернет-почты (MIME) — дополняющий протокол, позволяющий передавать сообщения, используя SMTP-данные, которые не имеют вид ASCII. Расширение MIME — не почтовый протокол и не отменяет SMTP; оно только его расширяет.
Модуль MIME преобразовывает данные, отличающиеся от ASCII, к виду ASCII и доставляет их SMTP-клиенту через Интернет. Сервер SMTP на приемной стороне получает данные в виде ASCII и доставляет к MIME, чтобы преобразовать данные в первоначальный вид.
Можно упрощенно сказать, что MIME — это набор программного обеспечения, который преобразует данные, не представленные в ASCII, в данные ASCII и, соответственно, наоборот.
MIME определяет пять заголовков, которые могут быть дополнены к исходной секции заголовков SMTP для определения параметров преобразования:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 |


