Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Пример последовательности команд почтовой транзакции
Каждой строке присвоен номер и обозначено, кому они принадлежат – передатчику (C) или приемнику (S). Текст справа от двоеточия содержит действительно передаваемые данные. Трехзначные цифровые комбинации в начале передаваемых строк обозначают коды ответа. Ответ SMTP похож на сообщения-подтверждения о доставке, поскольку появляется лишь в том случае, когда приемник получил данные. 1. S: 220 mail.ru ESMTP Wed, 07 Sep 2005 09:21:58 +0400 2. C: Helo XName 3. S: 250 mx1.mail.ru Hello XName [62.76.36.11] 4. C: mail from: klimov@mail.ru 5. S: 250 OK 6. C: rcpt to: ivanov@yandex.ru 7. S: 250 Accepted 8. C: rcpt to: petrov@mail.ru 9. S: 250 Accepted 10. C: data 11. S: 354 Enter message, ending with "." on a line by itself 12. C: From: klimov@mail.ru 13. C: To: ivanov@yandex.ru 14. C: Subject: Тема 15. C: Текст сообщения 16. C: простой 17. C: . 18. S: 250 OK id=1ECsNi-000ATp-00 19. C: quit 20. S: 221 mx1.mail.ru closing connection
Как видно из строки 1, когда SMTP-клиент устанавливает TCP-соединение с портом протокола 25, SMTP-сервер отвечает кодом 220. Это означает, что соединение успешно установлено. После того как почтовые агенты компьютеров установили соединение и обменялись приветствиями, первой командой, согласно спецификации, должна быть команда HELO. Как указано в строке 2, SMTP-клиент передает HELO, указывая имя своего компьютера в качестве аргумента (имя может быть вымышленным). В ответ на HELO приемник выдает код 250, сообщая передатчику о том, что команда принята и обработана. После установления TCP-соединения и идентификации (при помощи HELO) SMTP-клиент приступает к почтовой транзакции. Для начала он выполняет одну из следующих команд: MAIL, SEND, SOML или SAML. В нашем примере использована команда MAIL. После того как сервер выдал код ответа 250 (строка 5), согласившись обработать сообщение от klimov@mail.ru, необходимо указать получателя сообщения. Это делается при помощи команды RCPT. Команда RCPT имеет аргумент – имя получателя. На одну команду приходится только одно имя, поэтому, если получателей несколько, команда RCPT выдается несколько раз. В нашем примере команды RCPT выполняются в строках 6 и 8. Выдав команду RCPT, клиент ожидает получить ответ с кодом 250. После того как посланы все команды RCPT, клиент начинает передачу данных при помощи команды DATA. В строке 10 показано, как клиент (передатчик) высылает команду DATA, в строке 11 – как сервер отвечает кодом 354. Этот код означает, что передача данных разрешена и должна заканчиваться комбинацией CRLF-точка-CRLF (новой строкой, содержащей только точку). После того как получен код 354, клиент может начать передачу данных. Сервер, в свою очередь, помещает принятые данные в очереди входящих сообщений. Сервер не высылает никаких ответов до тех пор, пока не получит комбинацию CRLF-точка-CRLF от клиента, означающую конец передачи данных. Как показано в строках 17 и 18, в ответ на полученную комбинацию CRLF-точка-CRLF сервер выдает код 250, который означает успешное окончание операции. Для того чтобы закончить почтовую транзакцию, клиент, по правилам SMTP, обязан послать команду QUIT. Сервер, в свою очередь, отвечает кодом 221. Этот код подтверждает клиенту, что соединение будет закрыто, после чего соединение действительно закрывается. В любой момент во время транзакции клиент может использовать команды NOOP, HELP, EXPN и VRFY. В ответ на каждую команду сервер высылает клиенту определенную информацию. В зависимости от ответа, клиент может предпринять определенные действия, однако в спецификации SMTP это не оговаривается.
Дата добавления: 2015-07-26; просмотров: 220; Нарушение авторских прав Мы поможем в написании ваших работ! |