Скачиваний:
60
Добавлен:
22.01.2014
Размер:
258.56 Кб
Скачать

7.3 Ретрансляция сообщений

В огромной сети Internetочень редко удается отправить сообщение адресату напрямую. Как правило, используются SMTP-серверы,которые выполняют роль промежуточных пунктов пересылки сообщений. SMTP-серверыпри­нимают всю поступившую на них почту (если администратором SMTP-серверане установлены ограничения) и затем, самостоятельно, переправля­ют ее адресату. Этот процесс и называется ретрансляцией сообщений.

SMTP-серверывыбирают путь сообщения по своему усмотрению в зависи­мости от параметров настройки, скорости доступа и т. д. ПротоколSMTPпозволяет отправителю сообщения самостоятельно указывать путь передачи сообщения, устанавливая в качестве параметров команды отправки проме­жуточные SMTP-серверы.

Параметр <fol•waгd-path>командыRCPTможет 'содержать не только имя почтового ящика получателя, но и путь к этому почтовому ящику черезSMTP-серверы,например:

S: RCPT TO:<@ONE,@TWO:Jones@THREE>

где "ONE", "TWO", "THREE"-"^MeHaxocTOB'("ONE" и "TWO"-имена промежуточных хостов, "Jones@THREE" —имя почтового ящика адресата на хосте "THREE"). Механизм ретрансляции сообщений состоит в следующем:

  1. Сообщение передается SMTP-серверу,стоящему первым на пути переда­чи (хост "ONE"). После принятия этим сервером сообщения, он переме­щает свой идентификатор из пути передачи и ставит его в строку обрат­ного пути <reverse-path> (определенный в командеMAIL).

  2. Затем сервер, получивший данное сообщение становится отправителем SMTPи передает сообщение по адресу хоста, стоящего первым в пути передачи (это будет теперь хостTWO") Теперь это сообщение с изме­ненными параметрами <forward-path> и <reyerse-path> отправляется на следующий по маршруту хост.

  3. Далее все повторяется, пока сообщение не дойдет до адресата (т. е. пара­метр <forward-path> станет равным пустой строке).

Примечание

Заметим, что идентификаторы отправителя <reverse-path>и получателя<forward-path>участвуют и изменяются только в SMTP-командахи никакие отра­жаются на параметрах сообщения "То:', "From:" и "Сс:"

Если SMTP-серверполучил сообщение, но позднее (например, при его от­правке) обнаружил, что путь передачи указан неверно (или произошли ка­кие-либо сбои сети и т.д.) и данное сообщение не может быть отправлено, он обязан построить "сообщение уведомления", об ошибке и отправить его отправителю сообщения (указанному в параметре <reverse-path>).Для пре­дотвращения петли передачи (цикла пересылок уведомляющих сообщений), сообщение уведомления об ошибочном сообщении передается SMTP-серверомбез имени (идентификатора) отправителя, т. е. без параметра<reverse-path>.Вместо него передается пустая строка:

MAIL FROM: < >

Информация об отправителе этого сообщения помещается в поле "From:" конверта сообщения.

Рассмотрим теперь несколько примеров работы SMTP.

Сценарии

Простейший пример SMTP-транзакции —передача сообщения трем ад­ресатам.

R: 220 BEN-UNIX.ARPA Simple Mail Transfer Service Ready

S: HELO USC-ISIF.ARPA

R: 250 BBN-UNIX.ARPA

S: MAIL FROM:<Smith@asC-ISIF.ARPA>

R: 250 OK

S: RCPT TO:<Jones@BBN-ONIX.ARPA>

R: 250 OK

S: RCPT TO:<Green@BBN-UNIX.ARPA>

R: 550 No such user here

S: RCPT TO:<Brown@BBN-ONIX.ARPA>

R: 250 OK S: DATA

R: 354 Start mail input; end with <CRLF>.<CRLF>

S: Hey! ...

S: ... Bye!

S: .

R: 250 OK

S: QUIT

R: 221 BBN-UNIX.ARPA Service closing transmission channel

Адресату <Green@BBN-UNIX.ARPA> почта не была доставлена. Пример прерванной SMTP-транзакциивыглядит так:

R: 220 MIT- Multics.ARPA Simple Mail Transfer Service Ready

S: HELO ISI-VAXA.ARPA

R: 250 MIT-Multics.ARPA

S: MAIL FROM:<Smith@ISI-VAXA.ARPA>

R: 250 OK

S: RCPT TO:<Jones@MIT-Multics.ARPA>

R: 250 OK

S; RCPT TO;<Green@MIT-Multics.ARPA>

R: 550 No such user here

S: RSET R: 250 OK

S: QUIT

R: 221 MIT-Multics.ARPA Service closing transmission channel

В этом случае почта адресатам не передана.

Пример ретрансляции сообщения от <JQP@MIT-AI.ARPA> на <Jones@BBN-VAX.ARPA> через <USC-ISIE.ARPA> выглядит так:

  • Шаг 1:обработка сообщения на хосте <USC-ISIE.ARPA>.

R: 220 USC-ISIE.ARPA Simple Mail Transfer Service Ready

S: HELO MIT-AI.ARPA

R: 250 USC-ISIE.ARPA

S: MAIL FROM: <JQP@MIT-AI.ARPA>

R: 250 OK

S: RCPT TO:<@USC-ISIE.ARPA:Jones@BBN-VAX.ARPA>

R: 250 OK

S: DATA

R: 354 Start mail input; end with <CRLF>.<CRLF>

S: Date: 2 Nov 97 22:33:44

S: From: John Q. Public <JQP@MIT-AI.ARPA>

S: Subject: Hello

S: To: Jones@BBN-Vax.ARPA

S:

S: Hello! I am John.

S: .

R: 250 OK

S: QUIT

R: 221 USC-ISIE.ARPA Service closing transmission channel

  • Шаг 2:доставка адресату <Jones@BBN-VAX.ARPA>.

R: 220 BBN-VAX.ARPA Simple Mail Transfer Service Ready

S: HELO USC-ISIE.ARPA

R: 250 BBN-VAX.ARPA

S: MAIL FROM:<@USC-ISIE.ARPA:JQPeMIT-AI.ARPA>

R: 250 OK

S: RCPT TO: <Jones@BBN-VAX.ARPA>

R: 250 OK

S: DATA

R: 354 Start mail input; end with <CRLF>.<CRLF>

S: Received: from MIT-AI.ARPA by DSC-ISIE.ARPA ;

2 Nov 97 22:40:10 UT

S: Date: 2 Nov 97 22:33:44

S: From: John Q. Public <JQP@MIT-AI.ARPA>

S: Subject: Hello

S: To: Jones@BBN-Vax.ARPA

S:

S: Hello! I am John.

S: .

R: 250 OK

S: QUIT

R: 221 USC-ISIE.ARPA Service closing transmission channel