Для чтения и отправки электронной почты многие из вас, уважаемые читатели, пользуются специализированными почтовыми клиентами вроде TheBat, Outlook, KMail и др. Эти программы удобны, функциональны и красивы. И я не собираюсь умалять их достоинств. Сегодня речь о другом о получении и отправке почты с помощью текстовой консоли.
Конечно, работать с почтой с помощью специального софта намного легче и удобней. Однако представьте себе следующую ситуацию. Вы подключаетесь к Сети с помощью интернет-карты или являетесь контрактным абонентом. Естественно, вы имеете почтовый ящик у собственного провайдера (а такая услуга предоставляется многими) и благополучно им пользуетесь, пока не заканчиваются деньги на карточном или контрактном счету. При этом оказывается, что ящик существует, а доступа к Сети для проверки почты уже нет. Да и деньги имеют привычку заканчиваться именно в тот момент, когда нужно срочно получить важнейшее письмо. Что остается делать? Из этой ситуации, которая, согласитесь, нередка, существует три выхода.
Выход первый. Вы покупаете новую интернет-карту или вносите деньги на контрактный счет, настраиваете подключение и благополучно забираете почту собственным почтовым клиентом. Минус этого выхода в том, что нужно сразу потратить приличную сумму на то, чтобы купить новую карточку или сделать взнос, что в наше смутное время может позволить себе далеко не каждый.
Выход второй. Вы идете к другу/подруге/соседу и слезно просите позволить вам посидеть «десять минуточек» в Интернете и читаете почту там. Минусы друг/подруга/сосед могут отказать, почтового клиента, настроенного должным образом на ваш ящик, у них, естественно, нет, да и ваш провайдер может не предоставить интерфейс управления ящиком через web.
Выход третий. Вы идете в ближайший интернет-клуб, платите 50 копеек и десять минут сидите в Сети. За эти десять минут вы должны успеть настроить почтовый клиент на свой ящик и прочитать свое важнейшее сообщение. Правда, практика показывает, что десяти минут для этого оказывается недостаточно, да и не все интернет-кафе разрешают настраивать параметры почтовых клиентов.
Итак, тупик. Однако у каждого тупика есть лазейка между кирпичами, с помощью которой можно из него выбраться. Допустим, первый и второй выходы отпадают (ну не выдали еще стипендию бедному студенту, а все друзья/подруги/соседи разъехались на дачу/море/деревню). Остается интернет-клуб, но на настройку всех параметров почтовика не хватит пятидесяти копеек, сэкономленных на пирожке. И тут возникает вполне уместный вопрос: «А что же делать?».
Выход №4
И здесь нас сильно выручает программа с названием TELNET, которая идет в штатной поставке практически любой операционной системы, будь то Windows или Linux. Многие, имея эту программу на своем компьютере, и не подозревают, сколько скрытых талантов в ней заложено. Программа эта позволяет подключиться к любому порту любого компьютера в любой сети и, в случае наличия на этом порту определенного сервера, отправить этому серверу определенную команду. Набор команд, которые можно использовать, определяется протоколом, который используется данным сервером. И наборы эти настолько широки, что описать их в рамках этой статьи невозможно, да и не нужно (кто хочет, может почитать о стандартных протоколах на сайте http://www.faqs.org/rfcs). Нас же интересуют только протоколы POP3 (Post Office Protocol для чтения почты) и SMTP (Simple Mail Transfer Protocol для ее отправки).
Итак, вы приходите в интернет-клуб, платите пятьдесят копеек и садитесь за компьютер (при этом предполагается, что на компьютере установлена одна из операционных систем семейства Windows или Linux). Теперь вам осталось открыть программу telnet и набрать в ней некоторую последовательность команд, которые позволят вам прочитать или отправить текстовое сообщение без использования почтовых клиентов. Уложитесь ли вы в уплаченные пятьдесят копеек зависит только от вашей скорости набора текста. Мне, например, этого времени хватало, чтобы еще и в чате посидеть :-).
Вызвать telnet в Linux можно, используя обыкновенную текстовую консоль (Рис. 1), а в Windows используя окошко Пуск > Выполнить (Рис. 2). Telnet чисто консольная программа, однако в ОС Windows версий ниже 2000 она имела некоторое подобие графического интерфейса (Рис. 3).
Все команды вводятся в ответ на приглашение, которое имеет вид обыкновенного текстового курсора. Синтаксис вызова программы telnet одинаков во всех операционных системах:
Здесь в качестве параметра host необходимо использовать имя домена или IP-адрес искомого узла, а в качестве параметра port порт, на котором «висит» необходимый сервис. В нашем случае в качестве параметров host и port мы будем использовать значения, указанные в таблице.
Чтение почты
А теперь давайте представим себе типичную telnet-сессию, используемую для чтения электронной почты. Все слова, которые будут находиться после двух косых линий (//) это мои комментарии, их вводить не нужно :-).
Сначала, естественно, нужно вызвать telnet:
Далее, в случае успешного подключения, вас ожидает приветствие сервера и приглашение ввести необходимые команды, чтобы получить доступ к письмам в почтовом ящике. Ниже приведен пример telnet-сессии, используемой для чтения письма, находящегося в почтовом ящике пользователя на бесплатном почтовом сервере UA.FM. Пояснения сервера у разных провайдеров могут различаться, однако все ответы всегда начинаются с символов +ОК в случае успешного выполнения команды, и ERR в случае ошибки. Каждая ошибка поясняется, и если вы знакомы с английским языком, то вполне можете принять меры по ее устранению. Команды, в соответствии со стандартом, нечувствительны к регистру символов, за исключением вашего пароля.
Так выглядит примерная telnet-сессия, позволяющая прочитать почту не пользуясь почтовым клиентом. Естественно, никаких удобств (вроде смены кодировок или работы с аттачами) вам не предлагается, но прочитать обыкновенное текстовое сообщение всегда можно. Кроме указанных, вы можете также использовать команды TOP N M (N номер сообщения, М количество строчек сообщения, которые необходимо вывести на экран, начиная с первой) и DELE N (N номер сообщения, которое необходимо удалить). Полный список команд и ошибок POP-сервера можно прочитать в RFC 1939 на сервере http://www.faqs.org.
Отправка почты
Было бы неправильно полагать, что telnet’ом можно пользоваться только для приемки сообщений. Как я уже говорил, telnet это штука универсальная, и специфика ее использования зависит только от протокола, которым вы планируете пользоваться. Если протокол поддерживает определенную систему команд добро пожаловать в telnet!
Допустим, вы хотите отослать письмо на электронный адрес cosmic@mail.zp.ua (то есть мне :-)). Откроем новую сессию telnet с помощью следующей команды:
В дальнейшем в качестве целевого SMTP-сервера вы должны использовать адрес сервера, находящийся после знака «собачки» в электронном почтовом адресе. Это, в общем, необязательно (можно послать письмо через любой SMTP-сервер, который поддерживает перенаправлание адресов relaying), но такой способ гарантирует доставку письма получателю. Telnet-сессия с SMTP-сервером будет выглядеть примерно так:
Итак, письмо введено. В теле письма вы можете использовать любые стандартные заголовки (тема, формат, кодировка и т.п.). Все команды и возможные ошибки протокола SMTP читайте в RFC 821. Пересылка письма осуществляется сразу после знака окончания тела письма (точка . между двумя нажатиями клавиши Enter). Естественно, опять-таки никаких удобств кроме самого главного: письмо отправлено :-)!
С помощью telnet вы, кроме как отправить и прочитать почту, можете, например, получить web-страничку, поигравшись с командой GET после подключения к 80 порту какого-нибудь web-сервера. Кроме того, эта программа незаменима при отладке собственных серверных приложений. Так что простор для творчества велик, да и материалов в Сети по этой теме предостаточно. Дерзайте, и все у вас получится. До встречи на страницах любимого еженедельника!