Протокол SMTP
Протокол SMTP (simple mail trаnsfer protocol) служит
для отправки почты. Рассмотрим этот протокол на примере.
Протокол SMTP поддерживают почтовые сервера. То есть,
чтобы использовать его, необходимо для начала подсоединиться
к такому серверу. Каждый сервер имеет свой адрес, а для
примера мы будем использовать сервер mail.ru. Адрес его
SMTP сервера - smtp.mail.ru, порт smtp-сервера: 25.
Вся необходимая информация у нас есть, будем соединятся.
Для этого будем использовать программу Telnet. Программа
Telnet входит в поставку всех операционных систем, которые
поддерживают tcp/ip.
Для пользователей Windows: Start(Пуск)->Run(Выполнить).
В окошке набираем:
telnet smtp.mail.ru 25
Должна запуститься программа и сразу подсоединиться к
серверу. Об удачном подключении будет свидетельствовать
сообщение от сервера (что-нибудь в таком роде):
220 mx7.port.ru ESMTP MAIL.RU Mon, 31 May 2004 03:56:38
+0400
Это сообщение говорит нам, что сервер готов к работе.
Теперь можно вводить команды.
Для начала нужно представиться серверу, набираем команду
HELO [domain]. Domain - это имя домена, вместо него пишем
все что угодно:
HELO 12345
ответ сервера:
250 mx7.port.ru Hello dialup02.exemple.com [195.10.146.201]
Обратите внимание: сервер показал нам наше имя хоста и
ip-адрес (dialup02.exemple.com [195.10.146.201] ). Эта
информация потом будет добавлена в заголовок письма и
получатель письма, если его заинтересует дополнительная
информация, может запросто увидеть ее, заглянув в свойства
письма.
Следующая команда - MAIL, эта команда обязательна, используем
ее для указания адреса отправителя.
Синтаксис:
MAIL FROM: sergey@mail.ru
ответ сервера:
250 <sergey@mail.ru> is syntactically correct
Теперь необходимо указать адрес получателя сообщения:
RCPT TO: sergey@mail.ru
ответ сервера:
250 <sergey@mail.ru> verified
Теперь нужно отправить письмо, для этого вводим команду:
DATA
ответ сервера:
354 Enter message, ending with "." on a line
by itself
Это вход в режим набора письма. Здесь и происходит ввод
самого письма. Но не нужно спешить сразу набирать текст,
так как он будет даже без темы. Перед вводом текста письма,
если желаете, можно добавить тему письма (subject), адрес
для ответа (reply-to) и т.п.
Так что, введем в наше письмо эти поля:
reply-to: sergey1@bk.ru
subject: Тема письма
Привет. Как дела?
.
Как видно из примера, чтобы закончить ввод и выйти обратно
в командный режим, нужно нажать [Enter] (перейти на новую
строку), набрать символ [.] (просто ввести точку без скобок)
и опять нажать [Enter].
После этого сервер сообщит, что наше сообщение принято:
250 OK id=11oivl-0000hm-00
Теперь можно ввести еще сообщения или отключиться, набрав
команду QUIT, после которой сервер отвечает:
221 mx7.port.ru closing connection
Все ответы сервера начинаются с какого-то числа. Это
"коды ответов" сервера. Только эти цифры являются
обязательными ответами, текст, который идет после них,
предназначен для упрощения понимания, и на разных серверах
этот текст может быть разным, а на некоторых, возможно,
вообще могут быть цифры без текста.