Работа с почтовым ящиком Telnet`ом.
В процессе обычного почтового обмена осуществляется как бы 2 независимых действия :
Используем доступ к серверу через программу Telnet по 110 порту TCP -чтение писем.
Взаимодействие по протоколу POP3 можно разделить на две фазы: фазу аутентификации и фазу обмена данными. В начале выдаются команды фазы аутентификации user и pass. В фазе аутентификации пользователь должен сообщить свой идентификатор и пароль.В качестве user указываем свою учетную запись до символа @, пароль-тот, что используется для доступа к Вашей почте. Если аутентификация была произведена успешно, то система позволяет работать с домашним ящиком пользователя. Затем по команде stat можно узнать статус почтового ящика пользователя - количество сообщений и их суммарный размер в байтах. По команде list система сообщает число сообщений и размер каждого из них. По команде top [(номер сообщения) n] можно получить заголовок сообщения и n - первых сторок ссобщения, по команде retr [номер сообщения] можно получить текст сообщения. По команде dele [номер сообщения] пометить сообщение к удалению. Удаляются сообщения только в момент окончания сеанса, а во время сеанса они только помечаются как удаленные, поэтому по команде rset эти пометки можно снять. Команда quit завершает сеанс работы с сервером.
Используем доступ к серверу через программу Telnet по 25 порту TCP -отправка писем.
Наиболее распространенным является отправка почтового сообщения,
которая начинается по команде MAIL, идентифицирующей отправителя: mail from:
vitya@mail.ru
Следующей командой определяется адрес получателя: RCPT TO: rcpt to: vasya@hotmail.com
После того, как определены отправитель и получатель почтового сообщения, набираем
data.
Команда data вводится без параметров и идентифицирует начало ввода почтового
сообщения. Сообщение вводится до тех пор, пока не будет введена строка с точкой
в первой позиции. Согласно стандарту почтового сообщения RFC822 отправитель
передает заголовок и тело сообщения, которые разделены пустой строкой. Сам протокол
SMTP не накладывает каких-либо ограничений на информацию, которая заключена
между командой DATA и "." в первой позиции последней строки. Приведем
пример обмена сообщениями при отправке почты:
Если админ не закрыл возможность верификации пользователя, то Вам повезло и можно узать или, если забыли, вычислить имя учетной записи на сервере, которому отправляете почту:
Хотя обычно эту функцию закрывают. :-)))))))
Итак, список команд для работы с почтовым ящиком:
Команды SMTP - RFC 821 (Порт 25):
HELO < сервер-отправитель> | Идентифицирует SMTP-сервер отправителя. |
MAIL FROM <адрес отправителя> | Задает адрес отправителя. |
RCPT TO: <адрес получателя> | Задает адрес получателя. |
DATA | Указывает на начало сообщения. Для окончания сообщения указывается (.). |
RSET | Прерывает передачу сообщения. |
VRFY <> | Проверяет имя пользователя. |
EXPN <> | Запрашивает список адресов электронной почты. |
HELP | Запрашивает online-помощь. Выводит описание команд, реализованных в системе. |
QUIT | Завершает SMTP-сеанс. |
Команды POP3 - RFC1725 (Порт 110):
USER имя_пользователя | Посылает имя пользователя. |
PASS пароль | Посылает пароль пользователя. |
STAT | Запрашивает информацию о количестве непрочитанных сообщений/байтов. |
RETR n | Требует показать сообщение номер n. |
DELE n | Удаляет сообщение номер n. |
LAST | Запрашивает номер последнего прочитанного сообщения. |
LIST (n) | Запрашивает информацию о размере сообщения номер n или о размере всех сообщений.. |
RSET | Восстанавливает удаленные сообщения и устанавливает счетчик сообщений в 1. |
TOP n l | Печатает заголовок и l строк сообщения n. |
NOOP | Режим ожидания. |
QUIT | Завершает сеанс POP3. |