Проектирование системы электронной почты предприятия
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
. C: Ivanov
. C:.
. S: 250 OK
. C: QUIT
. S: 221 comp3. otd2. constr.org Service closing transmission channel
Как видно из строки 1, когда SMTP-клиент устанавливает TCP-соединение с портом протокола 25, SMTP-сервер отвечает кодом 220. Это означает, что соединение успешно установлено:
. S: 220 comp3. otd2. constr.org Simple Mail Transfer Service Ready
После того как MTA компьютеров comp1. otd1. constr.org и comp3. otd2. constr.org установили соединение и обменялись приветствием, первой командой, должна быть команда EHLO. Как указано в строке 2, SMTP-клиент передает EHLO, указывая имя своего компьютера в качестве аргумента. Другими словами, он сообщает: "Привет, я - comp1. otd1. constr.org". Команда EHLO употребляется с аргументом, как показано ниже:
. C: EHLO comp1. otd1. constr.org
В ответ на EHLO приемник выдает код 250, сообщая передатчику о том, что команда принята и обработана, а так же сообщать о видах сервиса, которые он поддерживает (расшифровку сервисов см. табл.4.2):
3. S: 250-comp3. otd2. constr.org says hello
-HELP
-AUTH CRAM-MD5 DIGEST-MD5
250-SIZE
-ETRN
-TURN
-VRFY
EHLO
Как видно из синтаксиса все строки ответа начинаются на 250 + дефис, а последняя 250 + пробел. Это сделано для того, чтобы можно было опознать конец ответа.
Среди поддерживаемых сервисов есть AUTH. Далее проведена аутентификация.
. C: AUTH CRAM-MD5
. S: 334NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4=
. C: ZnJlZCA5ZTk1YWVlMDljNDBhZjJiODRhMGMyYjNiYmFlNzg2ZQ==
. S: 235 Authentication successful.
При получении команды аутентификации от клиента стока 4, сервер отправляет клиенту ответ с кодом 334 (ответ о готовности) и текстовой частью содержащей BASE64-закодированную строку строка 5. Ответ клиента состоит из BASE64-закодированной строки 6. После чего сервер подтверждает аутентификацию строкой 7.
После установления TCP-соединения и идентификации SMTP-клиент приступает к почтовой транзакции. Для начала он выполняет одну из следующих команд: MAIL, SEND, SOML или SAML. В нашем примере использована команда MAIL:
. C: MAIL FROM:
Все четыре команды, MAIL, SEND, SOML и SAML, имеют одинаковый синтаксис:
Аргумент "обратный путь" (reverse path) указывает серверу, кому в случае ошибки отослать соответствующее сообщение. В нашем случае, Ivanov@comp1. otd1. constr.org.
После того как сервер выдал код ответа 250 (строка 9), согласившись обработать сообщение от Ivanov@comp1. otd1. constr.org, проведем проверку, существует ли пользователь с фамилией Petrov.
. C: VRFY Petrov
Сервер отвечает, что такой пользователь есть:
11. S: 250 Inav Petrov
Теперь необходимо указать получателя сообщения. Это делается при помощи команды RCPT. Команда RCPT имеет аргумент - имя получателя. На одну команду приходится только одно имя, поэтому, если получателей несколько, команда RCPT выдается несколько раз. В нашем примере команды RCPT выполняются в строках 12, 14, 16. Синтаксис RCPT похож на синтаксис команды MAIL:
RCPT
Однако в отличие от MAIL, аргумент RCPT начинается со слова "TO:". Содержимое аргумента - путь передачи сообщения (forward path), а не обратный путь. На данный момент для нас важно, что в пути передачи сообщения указано имя почтового ящика получателя.
Выдав команду RCPT, MTA-клиент ожидает получить ответ с кодом 250. Однако в ответ на 16-ю строку
C: RCPT TO:
сервер отвечает кодом 550:
S: 550 No such user here
Код ответа 550 означает, что MTA не в состоянии выполнить запрос клиента, поскольку не знает, как доставить почту указанному пользователю. То есть, скорее всего, у господина по фамилии Sidirov нет почтового ящика (Sidirov@comp3. otd2. constr.org) на этом компьютере. Теперь сервер обязан информировать клиента об отсутствии почтового ящика получателя сообщения. Однако в спецификации SMTP ничего не говорится о том, как клиент должен реагировать на это сообщение.
После того как посланы все команды RCPT, клиент начинает передачу данных при помощи команды DATA. В строке 18 показано, как MTA-клиент (передатчик) высылает команду DATA, в строке 19 - как сервер отвечает кодом 354. Этот код означает, что передача данных разрешена и должна заканчиваться комбинацией CRLF-точка-CRLF (новой строкой, содержащей только точку).
18 C: DATA
S: 354 Start mail input; end with
После того как получен код 354, клиент может начать передачу данных. MTA-сервер, в свою очередь, помещает принятые данные в очереди входящих сообщений. Сервер не высылает никаких ответов до тех пор, пока не получит комбинацию CRLF-точка-CRLF от клиента, означающую конец передачи данных. В нашем примере Ivanov отправляет тестовое письмо с текстом:
. C: Hello!
. C: Test mail.
. C: Ivanov
Как показано в строках 28 и 29, в ответ на полученную комбинацию CRLF-точка-CRLF, сервер выдает код 250. Код ответа 250 означает успешное окончание операции:
C:.
S: 250 OK
Для того чтобы закончить почтовую транзакцию, клиент, по правилам SMTP, обязан послать команду QUIT. Сервер, в свою очередь, отвечает кодом 221. Этот код подтверждает клиенту, что соединение будет закрыто, после чего соединение действительно закрывается:
30 C: QUIT
S: 221 comp3. otd2. constr.org Service closing transmission channel
В любой момент во время транзакции клиент может использовать команды NOOP, HELP, EXPN и VRFY. В ответ на каждую команду сервер высылает клиенту определенную информацию.
4. Описание протокола получения электронной почты
4.1 Общие описание протокола РОРЗ
Post Office Protocol (POP) - протокол доставки почты пользователю из почтового ящика почтового сервера РОР. Многие концепции, принципы и понятия протокола POP выглядят и функционируют подобно SMTP. Команды POP практически идентичны командам SMTP, отличаясь в некоторых деталях.
В настоящее время
Copyright © 2008-2014 studsell.com рубрикатор по предметам рубрикатор по типам работ пользовательское соглашение