Чтобы понять, как действует протокол SMTP, надо проследить ход SMTP-транзакции. В листинге 19.1 показан процесс передачи сообщения, осуществляемый вручную с помощью программы telnet
. (Как нетрудно догадаться, в обычной SMTP-транзакции программа telnet
не участвует).
Листинг 19.1. Пример SMTP-сеанса
$ telnet louiswu.rodsbooks.com
25 Trying 192.168.1.5...
Connected to louiswu.rodsbooks.com.
Escape character is '^]'.
220 louiswu ESMTP Exim 3.12 #1 Wed, 30 Oct 2002 12:01:29 -0500
HELO nessus.rodsbooks.com
250 louiswu Hello nessus.rodsbooks.com [192.168.1.3]
MAIL FROM:
250
RCPT TO:
250
DATA
354 Enter message, ending with "." on a line by itself
From:
To:
Subject: A Sample SMTP Session
This is the text of the message.
.
250 OK id=15z87H-OOOOCX-00
QUIT
221 louiswu closing connection
Connection closed by foreign host.
В большинстве случаев SMTP-соединение начинается по инициативе клиентской программы, в роли которой выступает программа подготовки писем или другой сервер SMTP (в сеансе, представленном в листинге 19.1, действия клиентской программы имитирует пользователь с помощью программы telnet
). Клиент объявляет о своем намерении начать взаимодействие, передавая серверу команду HELO
или EHLO
. Затем с помощью команд MAIL FROM:
и RCPT ТО:
клиент задает заголовки конверта From
и То
. В ответ на каждую из этих команд сервер SMTP передает числовой код, посредством которого он сообщает результаты обработки очередной команды. Текст, следующий за числовым кодом, предназначен для пользователя, который следит за ходом взаимодействия. Команда DATA
указывает на то, что передающий компьютер готов пересылать тело сообщения. Получив ответ от сервера, клиент начинает передачу заголовков и данных сообщения. (Заголовки сообщения передавать не обязательно. Если исключить их из листинга 19.1, письмо все равно будет доставлено.) Заголовки отделяются от тела сообщения пустой строкой. Строка, содержащая только точку, является признаком окончания сообщения.
Ниже описаны некоторые характерные особенности SMTP-транзакции и передаваемых сообщений, которые должны учитываться при настройке сервера.
• Идентификация отправителя. Передающая система передает свой адрес принимающему компьютеру различными способами, в частности, адрес содержится в составе команд HELO
и MAIL FROM
, а также поля заголовка From:
. Следует заметить, что если передающая система работает в режиме ретранслятора, в команде MAIL FROM
и в поле заголовка будет содержаться адрес другого компьютера. Так или иначе, IP-адрес отправителя становится известен принимающей системе; в листинге 19.1 этот адрес указывается в ответе на команду HELO
.
• Заголовки конверта и сообщения. В листинге 19.1 заголовки конверта и сообщения соответствуют друг другу, но в других случаях ситуация может быть иной. Если вы получите сообщение, адресованное не вам, причина этого может состоять в том, что в поле То
заголовка конверта был указан ваш адрес, а в поле To:
заголовка сообщения — адрес другого пользователя. Поскольку действия по доставке письма определяются значением поля То
заголовка конверта, то такое письмо будет передано вам. Почтовая программа, сохраняющая все данные о заголовках, помогла бы вам выяснить причины происходящего.
• Возможность отказаться от сообщения. Принимающий сервер SMTP может прекратить работу по доставке письма на любом этапе, начиная с установки соединения и заканчивая обработки сообщения после его получения. Чаще всего управление доставкой сообщения осуществляется после ответа на команду RCPT TO:
, но существует также возможность контроля на более ранних этапах взаимодействия. Если получатель прерывает соединение перед получением команды RCPT
некоторые отправители предпринимают повторную попытку передачи письма, что увеличивают нагрузку на сеть. Отказ от обработки после передачи содержимого письма имеет свой недостаток — если объем сообщения велик, такой подход также приведет к неоправданному увеличению трафика в сети.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии