Автор работы: Пользователь скрыл имя, 13 Февраля 2012 в 14:37, реферат
Электронная почта - это основное средство коммуникаций Internet.
Она во многом похожа на обычную почту. С ее помощью письмо - текст, снабженный стандартным заголовком (конвертом) - доставляется по указанному адресу, который определяет местонахождение сервера и имя адресата, который имеет почтовый ящик на этом сервере, с тем, чтобы адресат мог его достать и прочесть в удобное время.
Электронная почта оказалась во многом удобнее обычной, "бумажной". Кроме того,
Протоколы приёма и передачи почты.
Почтовые
программы для персональных компьютеров
используют разные протоколы для
приема и отправки почты. При отправке
почты программа
Простой протокол передачи почты (SMTP).
Взаимодействие в рамках SMTP строится по принципу двусторонней связи, которая устанавливается между отправителем и получателем почтового сообщения. При этом отправитель инициирует соединение и посылает запросы на обслуживание, а получатель - отвечает на эти запросы. Фактически отправитель выступает в роли клиента, а получатель - сервера.
Канал связи
устанавливается
Команды SMTP и их последовательность.
Простой
протокол передачи почты обеспечивает
двухсторонний обмен
Список ключевых слов (команд), определенный в спецификации SMTP.
Команды простого протокола передачи почты (SMTP)
|
Команды X-обязаны присутствовать в любой реализации SMTP. Остальные команды могут быть реализованы дополнительно. Каждая SMTP-команда должна заканчиваться либо пробелом (если у нее есть аргумент), либо комбинацией CRLF. SMTP способен передавать данные любого содержания (например, текст, графические, звуковые файлы).
MTP обеспечивает
двухстороннюю связь между
Для
целей дальнейшего
1. RECEIVER: 220 mit.edu Simple Mail Transfer Service Ready
2. SENDER: HELO usc.edu
3. RECEIVER: 250 mit.edu
4. SENDER: MAIL FROM:<Smith@usc.edu>
5. RECEIVER: 250 OK
6. SENDER: RCPT TO:<Jones@init.edu>
7. RECEIVER: 250 OK
8. SENDER: RCPT TO:<Green@mit.edu>
9. RECEIVER: 550 No such user here
10. SENDER:: RCPT TO <Brown@mit.edu>
11. RECEIVER: 250OK
12. SENDER: DATA
13. RECEIVER: 354 Start mail input; end with <CRLF>.<CRLF>
14. SENDER: Blah blah blah...
15. SENDER: ...etc. etc. etc.
16. SENDER: .
17. RECEIVER: 250 OK
18. SENDER: QUIT
19. RECEIVER: 221 mit.edu Service closing transmission channel
Как видно из строки 1, когда SMTP-клиент устанавливает TCP-соединение с портом протокола 25, SMTP-сервер отвечает кодом 220. Это означает, что соединение успешно установлено:
1. RECEIVER: 220 mit.edu Simple Mail Transfer Service Ready
После того,
как MTA компьютеров mit.edu и usc.edu
2. SENDER: HELO usc.edu
В ответ на HELO приемник выдает код 250, сообщая передатчику о том, что команда принята и обработана:
3. RECEIVER: 250 mit.edu
После установления TCP-соединения и идентификации (при помощи HELO) SMTP-клиент приступает к почтовой транзакции. Для начала он выполняет одну из следующих команд: MAIL, SEND, SOML или SAML. В нашем примере использована команда MAIL:
4. SENDER: MAIL FROM:Smith@usc.edu
Четыре команды, MAIL, SEND, SOML и SAML, имеют одинаковый синтаксис:
MAIL <пробел> FROM:<reverse-path> <carriage-return> line-feed>
Аргумент
“обратный путь” (reverse path) указывает
серверу, кому в случае ошибки отослать
соответствующее сообщение. В аргументе
содержится адрес источника сообщения
(в нашем случае, Smith@usc.edu
RCPT <про6ел> TO:<forward-path> <CRLF>
Однако, в отличие от MAIL, аргумент RCPT начинается со слова “TO:”. Содержимое аргумента - путь передачи сообщения (forward path), а не обратный путь. В пути передачи сообщения указано имя почтового ящика получателя. Выдав команду RCPT, МТА-клиент ожидает получить ответ с кодом 250. Однако, в ответ на восьмую строку
8. SENDER: RCPT TO:<Green@mit.edu>
сервер отвечает кодом 550:
9. RECEIVER: 550 No such user here
Код ответа 550 означает, что МТА не в состоянии выполнить запрос клиента, поскольку не знает, как доставить почту указанному пользователю. То есть скорее всего у мистера по фамилии Green нет почтового ящика (Green@mit.edu) на этом компьютере. В протоколе SMTP сказано, что сервер обязан информировать клиента об отсутствии почтового ящика получателя сообщения.
После того как посланы все команды RCPT, клиент начинает передачу при помощи команды DATA. В строке 12 показано, как МТА-клиент (передатчик) высылает команду DATA, в строке 13 - как сервер отвечает кодом 354. Этот код означает, что передача данных разрешена и должна заканчиваться комбинацией CRLF-точка-CRLF (новой строкой, содержащей только точку).
12. SENDER: DATA
13. RECEIVER: 354 Start mail input; end with <CRLF>.<CRLF>
После того как получен код 354, клиент может начать передачу данных. МТА-сервер, в свою очередь, помещает принятые данные в очереди входящих сообщений. Сервер не высылает никаких ответов до тех пор, пока не получит комбинацию CRLF-точка-CRLF от клиента, означающую конец передачи данных. Как показано в строках 16 и 17, в ответ на полученную комбинацию CRLF-точка-CRLF, сервер выдает код 250, что означает успешное окончание операции:
16. SENDER: .
17. RECEIVER: 250 OK
Для того, чтобы закончить почтовую транзакцию, клиент, по правилам SMTP, обязан послать команду QUIT. Сервер, в свою очередь, отвечает кодом 221, который подтверждает клиенту, что соединение будет закрыто, после чего соединение действительно закрывается:
18. SENDER: QUIT
19. RECEIVER: 221 mit.edu Service closing transmission channel
В любой
момент во время транзакции клиент
может использовать команды NOОР, HELP,
EXPN и VRFY. В ответ на каждую команду
сервер высылает клиенту определенную
информацию. В зависимости от ответа
клиент может предпринять определенные
действия.
Коды ответов SMTP.
В спецификации
SMTP требуется, чтобы сервер
Каждая
цифра в коде ответа имеет определенный
смысл. Первая цифра означает, было
ли выполнение команды успешно (2), неуспешно
(5) или еще не закончилось (3). Простой
клиент может анализировать только
первую цифру в ответе сервера, и
на основании ее продолжать свои действия.
Вторая и третья цифры кода ответа
разъясняют значение первой.
Коды ответа SMTP и их значение
|
Значения первой цифры в коде ответа SMTP
Цифра 1 означает,
что сервер МТА принял команду, от
клиента требуется
Коды ответа, начинающиеся с цифры 2, означают, что сервер МТА успешно завершил выполнение команды и ожидает появления новой. Код ответа, начинающийся на 3, означает, что команда начала выполняться, но серверу необходима дополнительная информация для ее завершения. Пример такого кода - 354. В ответ на него клиент МТА должен приступить к передаче почтового сообщения. Код, начинающийся с цифры 4, означает, что сервер не принял команду, и она не выполнена. Во всех ответах серии 400 предполагается, что ошибка временная и клиент может попытаться ее исправить. Коды ответа серии 500 также сообщают, что команда не выполнена. Кроме того, клиент не должен пытаться повторить ту же команду еще раз (по крайней мере в составе той же последовательности).
Значения второй цифры кода ответа SMTP
Вторая цифра кода ответа обозначает категорию ошибки. Цифра 0 обозначает синтаксическую ошибку. Команда может быть слишком длинной, иметь неправильный аргумент или отсутствовать в списке команд сервера.
У сообщений
с кодами 211 и 214 из табл. 2 вторая цифра
кода равна единице и оба они
информационного характера. У команд
с кодами 220, 221 и 421 вторая цифра —
двойка, и все они имеют дело
с передачей данных или с коммуникационным
каналом. Коды ответов, у которых
вторая цифра равна пяти (250, 450 и 550)
связаны непосредственно с
Третья цифра кода ответа SMTP
Каждая отдельная строка сообщения должна иметь собственную третью цифру в коде ответа. Рассмотрим, например, сообщения с кодами от 500 до 504. Каждое сообщение означает отдельную синтаксическую ошибку. Поскольку строки, описывающие различные виды ошибок, разные, то и коды ответа должны отличаться друг от друга. Каждое сообщение об ошибке имеет свой собственный порядковый номер в данной серии. Спецификация SMTP рекомендует, но не обязывает использовать строго заданные текстовые строки в ответах MTA-сервера.
Информация о работе Развитие стандартов кодирования сообщений электронной почты