Новичку полезно

  • А знаете ли вы что?

    - rudvs - пусть это будет мой каприз.


POP3 протокол или как работать с почтой при помощи пирочиного ножа!

Теги: POP3, протокол, почта, nc, netcat, пирочиный нож

Я уверен, что каждый из вас пользуется почтой кто то - по делам, кто то ради переписки с родными и близким, а некоторые просто ради того что бы собирать спам :-D. В этой статье вы узнаете, как работать с почтой с помощью программы netcat. Спросите зачем? Ну как же))) а вдруг вы будете сидеть там где ничего нет только netcat и вы, а вы очень хочет узнать много ли спама вам пришло? вот там и пригодятся эти знания))) Ну еще вы узнаете лишний протокол и примитивы работы с одной из лучших утилит для тестирования и отладки сетевых приложений!!! И в будущем сможете создать свой POP3 клиент или даже сервер. А может быть пойдете по темной стороне силы и ваш троян будет отсылать нужные вам данные. Вообще как и где применить знания вы найдете сами когда придет время, а я прейду от вступления к статье …

Как написано в википедии(http://ru.wikipedia.org/wiki/POP3):

POP3 (англ. Post Office Protocol Version 3 — протокол почтового отделения, версия 3) используется почтовым клиентом для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP(возможно обсудим в следующей статье).

POP3 сервер на все команды клиента отвечает очень легко и просто либо –ERR либо +OK, в чем вы скоро убедитесь! После ответ –ERR||+OK обычно идет пояснение данного ответа!

Допустим у нас есть цель получить почту на rambler.ru. Мы тут же идем и узнаем что POP3 сервер это mail.rambler.ru и что подключение идет к стандартному 110 порту.

Не долго думая мы берем netcat легким движением пальцев рук запускаем его в нашем любимом cmd вот так:

C:\ >nc mail.rambler.ru 110

На что сервер вежливо и очень даже культурно отвечает нам:

+OK POP3 ready Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript >

Вот вить чудеса +OK и пояснение(которого может и не быть) обозначает что мы удачно соединились с POP3 сервером и может продолжать свое увлекательное путешествие в мир POP3 протокола.

Дальше, разумеется, нам нужна авторизация на сервере. Делается все очень легко(все как в жизни с начало больно потом даже приятно).Авторизация проходит по командам USER и PASS соответственно вводим свой логин и пароль:

user test

+OK

pass testpass

+OK 5 messages (1456 bytes)

Как вы можете видеть сервер сразу выдает количество писем(5 messages) и их суммарный размер в байтах (1456 bytes).

Какую первую команду нужно изучить после авторизации? Ну ни знаю как вы но для меня это всегда первой командой является help. Вводим HELP:

HELP

+OK Valid commands: QUIT, NOOP, STAT, LIST, UIDL, DELE, RSET, RETR, TOP, LAST, X

TND XMIT, HELP

И сразу видим перечень команд, которые поддерживает сервер.

QUIT - Если вы наберете эту команду, то сразу закроете соединение.

QUIT

+OK bye-bye

Сервер с вами попрощается и все на этом печальный конец(((

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

NOOP

+OK

STAT – Вообще команда в нашем случае выводит тоже самое что и сервер при подключение к нему, а именно количество сообщений и их суммарный размер.

STAT

+OK 5 1456

LIST  - это первая команд(в нашем случае) которая принимает как параметр номер сообщения о котором вы хотите узнать более подробную информацию или если ввести ее без параметра выведется информация обо всех сообщениях в виде номера и размера сообщения.

LIST

+OK 5 messages (1456 bytes)

1 250

2 291

3 300

4 190

5 503

или

LIST 4

+OK 4 190

UIDL – Выводит идентификатор сообщения как параметр принимает номер сообщения. На мой взгляд совершенно ненужная команда((( хотя кто я такой что бы об этом говорить.

UIDL 2

+OK 2 45789342890445

DELE – делает вид что удаляет сообщение как параметр принимает номер удаляемого сообщения:-). Почему делает вид? Потому что до тех пор, пока вы не закроете сеанс связи с сервером командой QUIT, сообщения ни куда не удалятся, сервер их просто пометит как сообщения для удаления!

Восстановит удаленнее сообщения до выхода можно командой RSET она не принимает никаких параметров и создана для того что бы в пределах сессии восстанавливать случайно помеченные командой DELE сообщения.

DELE 4

+OK message 4 deleted

Как видите сервер ответил что сообщение удалилось удачно.

RSET

+OK maildrop has 5 messages (1456 bytes)

Как видите, сервер восстановил сообщение помеченное как удаленное.

Вы наверное уже устали и думаете, а как же получить сообщение или хотя бы его часть? Дык легко и просто!!!

RETR – команда принимает номер сообщения и выводит его на экран))) при наличии нужной кодировки и умелых рук вы даже сможете его прочитать :-D. Правда, в том что читать сообщения, таким образом, не совсем удобно, ну а что вы хотели? Если хотите удобства, скачайте нормальный почтовый клиент и выбросите этот netcat.

RETR

+OK 4 190

//тут выводится текст заголовок 4го сообщения

//а тут его содержание))) чаше всего аброй-кадаброй.

.//а тут точно как признак конца сообщения!

TOP – команда имеет куда более интересное предназначение хотя и схожее с RETR. Она выводить заголовок сообщения и указанное число строк из него. Для этого нам надо первым параметром указать номер сообщения, а вторым число строк из сообщения которое мы хотим увидеть.

TOP 4 5

//тут выводится текст заголовок 4го сообщения

//а тут 5 строк сообщения

Ну и для концовки скажу что сообщения первая буква у которых X экспериментальные().

Спросите, почему я не описал оставшиеся команды? Да потому что они присутствуют не везде и не всегда, а цель данной статьи было описание протокола. И если кто то захочет работать с дополнительными его возможностями всегда сможет обратиться в соответствующие RFC или к google.com.

Все описанное в статье было проверено на mail.ru(pop.list.ru:110) и на rambler.ru(mail.rambler.ru:110).

Добавить комментарий


Обновить