Главная / Cоветы ПК / Это полезно знать. / Отслеживание протоколов SMTP и POP3.

Отслеживание протоколов SMTP и POP3.

Когда сообщение передается на сервер в начале сообщения в  заголовок вставляется “Received:”, показывающее принадлежность к принимающей стороне, которая отправила сообщение от своего имени хоста, и штамп времени. Каждый SMTP-сервер, через который проходит сообщение добавляет свой собственный “Received:” заголовок. Таким образом, можно проследить путь по сообщению. Хотя эта информация не идентифицирует отправителя, но она может пролить свет на того, от кого пришло  сообщение.

После того, как будет получен овтет “250 OK”, который признается в конце письма, отправитель может начать снова новое сообщение, отправив новую команду “MAIL FROM:”, или он может подписать с сервера, используя “QUIT”. Будет получен 221 ответ в ответ на команду выхода.
SMTP-сервер должен поддерживать еще две команды в течение как минимум реализации. NOOP ничего не делает, но они должны спровоцировать ответ “250 OK”. RSET отменяет текущую транзакцию сообщения. Другие команды, такие как HELP действительно представляет интерес только для тех, кто пытается связаться с серверами SMTP в интерактивном режиме.

Post Office Protocol 3: POP3
SMTP, способен доставлять почту прямо на рабочий стол получателя, но на практике он  не является идеальным для этого протокола. Если реле SMTP не может доставить сообщение на следующего (или конечного) у себя в цепи получателя, оно будет пытаться отправить сообщение со всё удлинящимся интервалом времени в течение нескольких дней, прежде чем отправить уведомление об отсутствии  адреса обратного канала.
SMTP не предлагает способ для получателя запросить сервер на отправку почты, которую  он пытается доставить. Если получатель подключается к Интернету редко – например, с помощью коммутируемого соединения – их почтовый сервер никогда не сможет быть активным в периоды, когда они находятся в сети. В этом случае почта будет в конечном итоге отражаться. Протокол SMTP, скорее, как предоставление услуг курьера.
Post Office Protocol версии 3 (POP3) – как следует из названия – позволяет доставлять почту в почтовый ящик, чтобы вы могли получить её в любой момент, и прочитать по собственному выбору. POP3 применяет TCP и использует хорошо известный номер порта 110. Как и в других текстовых протоколах приложение, которые можно подключить к серверу POP3 с помощью эмулятора терминала Telnet и взаимодействовать с ней, POP3 использует команды. Иногда это может быть полезно, например, чтобы вручную удалить сообщение, сбой почтового клиента, когда он загружен.
При подключении к серверу, сервер должен ответить сообщением “+ OK POP3-сервер готов”. POP3 использует “+ OK” и “-ERR” в начале ответа,что свидетельствуют о принятии или отказе от команды. Это проще, чем числовые коды которые используются SMTP и другими протоколами: программному обеспечению требуется только проверить первый символ в плюс или минус. Текст, который может появиться после “+ OK” на запрос о том, что делать дальше. После “-ERR” это описание ошибки. Точное содержание текста может варьироваться от реализации сервера.

Идентификация
POP3-сервер имеет личную базу почты, поэтому неудивительно,что вам нужно ввести имя пользователя и соответствующий пароль, прежде чем вы сможете получить к нему доступ. Чтобы войти в систему вы должны послать “USER имя пользователя”. “+ OK”, ответ может показать, что имя пользователя является действительным, но это может так же дать полезную информацию для хакеров, поэтому большинство современных серверов POP3 отправляют команду  «+ OK», чтобы любое имя пользователя, действительное или нет, и отказывает от попытки аутентификации когда будет введен пароль.
Пароль передается с помощью “PASS пароль”. Если имя пользователя и пароль правильные, вы получите еще одно положительное подтверждение в ответ, как “+ OK имя пользователя два сообщения по 914 байт”. В ответ будет получено “-ERR”, если имя пользователя не известно, неверный пароль или если сервер по каким-то причинам не может открыть почтовый ящик пользователя.
После того как клиент успешно вошёл в систему, он может выдавать различные команды, которые позволяют узнать, сколько есть сообщений ожидания и сколько есть сообщений для загрузки и удаления их с сервера. Команда “STAT” возвращает количество сообщений, ожидающих <mw> и их общий размер в байтах <sb>, и ответ в виде “+ OK <mw> <sb>”. Заметим, что это та же информация которая приводится в подтверждение входа, но в такой форме (два числа, разделенные пробелом), которые проще для клиента программного обеспечения для обработки.
Команда “LIST” может быть использована, чтобы определить размер каждого сообщения. После того, как сервер посылает “+ OK”, на отдельные линии , номера сообщений <mn> и сообщения размером <ms>, разделенных пробелами. Ожидание сообщения нумеруются последовательно, начиная с 1. Команда “СПИСОК <mn>” может быть использована, чтобы узнать размер отдельного сообщения. Список команд, как правило, используется почтовым клиентом, которые реализуют определенные пользователем ограничения на размер сообщений, которые будут загружены, или тех, кто хочет, чтобы отобразить индикатор, который показывает, какая часть каждого сообщения была загружена.
POP3 не дает команды, которые позволяют клиенту, чтобы узнать тему сообщения или от кого оно. Тем не менее, TOP команда позволяет клиенту загружать заголовки сообщения и указанное количество строк из тела сообщения, из которых эта информация может быть получена. TOP является дополнительной командой POP3, формат команды “TOP <mn> <nl>”, где <mn> число сообщений и <nl> количество строк которое требуется. Ответ “+ OK” (если <mn> действует) с последующей частичной загрузкой сообщений. В конце загрузки указывается строка, содержащая один период (точка).
Команда “RETR <mn>” используется для получения сообщений с сервера. Команда должна включать в себя <mn> номер сообщения. После того, как сервер признаёт  “+ OK” он посылает все сообщения. Опять же, в конце письма указывается строка, содержащая только точку.

Удаление
Команда “DELE <mn>” используется, чтобы удалить сообщение. В самом деле, DELE команда только помечает для удаления сообщения. Любые сообщения, помеченные на удаление в течение сессии могут быть восстановлено путем выдачи “RSET” команды. Сообщения удаляються только один раз,когда клиент закрыл сессию POP3, выдавая команды “QUIT”. Если клиент никогда не будет закрывать сессию, из-за потери связи или тайм-аута, то вы можете найти некоторые сообщения ,которые загружаются во второй раз , когда почтовый клиент соединяется с сервером в следующий раз.
Для того чтобы избежать загрузки сообщений два раза, POP3-клиент может использовать команду “UIDL” или “UIDL млн”, чтобы получить уникальный, генерируемый сервером идентификатор для каждого сообщения. Сохраняя UIDLs загруженных сообщений в файл, клиент может легко определить, является ли сообщение на сервере ранее полученным или нет. Реализация UIDL команд не является обязательной, но большинство POP3 серверов, кажется, поддерживают и большинство почтовых клиентов используют их, если это возможно.

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

P.P.S. Если у Вас есть вопросы, желание прокомментировать или поделиться опытом, напишите, пожалуйста, в комментариях ниже.

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>