При
работе с почтой по протоколу pop3 (post office protocol 3) иногда возникает необходимость производить
некоторые манипуляции с сообщениями, например, просмотр заголовков, удаление и
т.п., не загружая сами сообщения целиком. Чаще всего это случается тогда, когда
имеют место проблемы с приемом почты, например, вследствие прихода письмем большого объема, и нужно проанализировать содержимое
почтового ящика и при необходимости удалить ненужное.
В самом протоколе
pop3 такая возможность предусмотрена, но, к сожалению, она реализована далеко не
во всех pop3/smtp-клиентах. Но можно сделать это с помощью
telnet-клиента, соединившись с портом 110 (pop3) нашего почтового
сервера mail.belpak.by и введя вручную
несколько несложных команд. Это не совсем удобно, но вполне по силам даже
неопытному пользователю.
Например, чтобы запустить стандартного
telnet-клиента операционых систем
Windows95/98/NT/2000 с необходимыми параметрами, достаточно набрать в
командной строке Windows (Пуск ->
Выполнить)
telnet mail.belpak.by 110
и произойдет соединение с
необходимым портом почтового сервера. Затем нужно войти в конкретный почтовый
ящик (например, mikola, пароль -
vaverka01). Данные почтового эккаунта передаются в качестве параметров команд user и pass,
соответственно.
|
+OK
mail.belpak.by Cyrus POP3 v1.5.19 server
ready |
Итак,
мы вошли в данный почтовый ящик и получили доступ к его содержимому. Теперь
посмотрим общее количество писем в ящике (команда stat) и объем каждого письма (команда list):
|
stat |
Таким
образом, у нас в ящике 4 письма общим объемом 2 218K. В списке, выданном командой scan
каждому из них присвоен номер. В первую очередь нас бы, видимо,
заинтересовало письмо №2, занимающее большую часть нашего почтового ящика: что в
нем, кто его отправитель и стоит ли его принимать. Для этих целей служит команда
top X Y, где X - номер письма в
вышеприведенном списке, а Y - количество первых строчек тела письма, которые вы
хотите просмотреть. Если Y=0, будет показана только "шапка" письма.
|
top 2
3 |
Теперь Вы имеете какие-то
представления о происхождении и содержании данного письма и можете решать, стоит
ли его принимать и обрабатывать. И если Вы все-таки решили удалить его, не
читая, это делается командой dele X, где
X, как Вы уже догадались, - номер сообщения в списке. После этого еще раз можно
проверить текущее состояние ящика командой list
и если остальные сообщения у Вас вопросов не вызывают, рассоединяетесь с сервером по команде quit, после чего можете работать с почтой
традиционным образом:
|
dele 2 |
Многие ISP провайдеры разрешают использовать Telnet протокол для прямого доступа к вашему почтовому
ящику. Это позволяет вам просмотреть и возможно удалить некоторые сообщения
(например очень большого размера, неправильно
отформатированные сообщения, что иногда не позволяет их загрузить или вообще
использовать почтовый ящик.
От переводчика: на моей памяти такое происходило несколько раз.
Ниже приведенные инструкции действительны для программы TELNET.EXE из Win95.
Для других Telnet программ и операционных систем
смотрите соответствующую документацию.
В стартовом меню выберите Пуск|Выполнить... (Start, Run...) и
введите следующее: telnet pop-server-name port
(Примечание: если вы запускаете Telnet из браузера, то синтаксис команды следующий:
telnet://pop-server-name:port - Для MSIE 3 в связи с ошибкой не указывайте двойной слеш, то есть
формат будет следующий telnet:pop-server-name:port
Проверьте установки вашего почтового сервера и номер порта, большинство
серверов используют 110 как номер порта POP3 сервера.
Например:
При этом вы должны подсоедититься к
почтовому серверу, если же этого не произошло, то проверьте следующее:
Требуется разрешить локальное эхо, если вы желаете видеть
введенный вами текст. Для разрешения локального эха, выполните следующее:
В
программе Telnet через меню Terminal, Preferences. отметьте пункт Local Echo. Также
можно разрешить запись протокола в файл: Terminal, Start Logging
После соединения, на каждую введенную вами команду сервер
отвечает:
-ERR 999 message text - если команда не понравилась
серверу
или:
+OK message text - если сервер принял команду
Примечание: Во время ввода команд серверу возможно вы не можете использовать клавишу "backspace" для удаления неправильно введенных символов,
многие сервера не понимают этого. Они расчитаны не для
работы с человеком, а для работы с почтовым клиентом, который не делает ошибок
при вводе. Например если вы введете "STS(backspace)AT" обычно вы видете
"STAT", но в случае POP3 сервера это не так, который просто ответит, что "STAT"
неверная команда, так как сервер воспримет текст "STS(backspace)AT". Если вы сделали ошибку, то просто нажмите
"Enter" не пытаясь устранять ошибку и введите текст
по новому. Но если вы сделаете ошибку в командах USER
или PASS, то у вас не будет второго шанса. В этом случае введите команду QUIT и
запустите Telnet повторно.
От переводчика: некоторые сервера все таки позволяют ввести данные команды
повторно.
Это должно быть самой первой командой после соединения с
сервером. Введите имя вашей учетной записи на сервер (первая часть вашего e-mail адреса). Например: USER nps
Это следующая обязательная команда после команды USER.
Введите ваш e-mail пароль. Пароль вводить с
соблюдением регистра букв. Для сервера малые или большие буквы являются разными.
Следующие команды могут использоваться по мере необходимости
Ответ на эту команду : +OK #msgs #bytes - где #msgs количество сообщений на сервере в вашем почтовом ящике
и #bytes общее количество байтов во всех сообщениях.
Например: +OK 3 345910
Ответ на эту команду выдает
список строк следующего содержания, номер сообщения, и количество байтов в
сообщение. Например:
+OK 3 messages
1 1205
2 305
3 344400
.
Данная команда читает сообщение#
(отображает его экране Telnet). Вы вероятно не захочете делать это, если только у вас не включена опция
Telnet logging).
Пример: RETR 2
Это дополнение к системе команд POP3. Не все сервера ее
поддерживают. Отличие от команды RETR, в том, что выдается не все сообщение, а
только указанное количество строк (#lines) для
сообщения msg#. Например TOP 1 0 выдаст вам
только заголовки письма номер 1, а TOP 1 5 заголовки и первые 5 строк
письма номер 1.
Данная команда помечает сообщение для удаления на сервере.
Это единственный путь удалить поврежденное сообщение. Помеченные сообщения
удаляются только после команды QUIT. Если связь с сервером прекратится до выдачи команды QUIT сервер не будет удалять
никакие сообщения. Пример: DELE 3
Данная команда снимает все отметки для удаления, так что
команда QUIT не удалит ранее отмеченные сообщения.
Данная команда прекращает сеанс работы с сервером и удаляет
все помеченные сообщения. Это не прекращает ваш сеанс связи с сервером
провайдера, а только с почтовым сервером.
Имеются также и другие команды для POP3 серверов, информацию о которых можно
найти в RFC 1939,
в данном документе описаны команды и коды ошибок.
Информаци по интерпретации файла Pop3.log который используется в Microsoft
Internet Mail можно найти
здесь How to Enable and Interpret the Pop3.log File