Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1666 / 116 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 5:

Протокол SMTP

Форматы сообщений

В листинге 5.2 показан простейший пример сеанса SMTP. Формат сообщения электронной почты, приведенный там же, довольно прост — всего одна строка текста. Сообщение, показанное в примере, хотя и является вполне функциональным, все же не совсем соответствует среднестатистическим электронным письмам, имеющим в настоящее время хождение по сети Internet. Сегодняшние сообщения электронной почты немного сложнее, и пользователи вполне закономерно ожидают соответствующего уровня обслуживания своих растущих потребностей. Теперь все эти поля вроде Subject, CC и BCC уже стали нормой при написании электронных писем и вопросов уже ни у кого не вызывают. Документ RFC 822 описывает стандартный формат почтового сообщения, который реализуется в той или иной степени в большинстве SMTP-систем. Эти системы как бы "стандартизируют" внешний вид и стиль работы с электронной почтой. В наше время простые однострочные сообщения уже не удовлетворяют потребности современного большого бизнеса.

Стандартные поля заголовка, согласно RFC 822

Документом RFC 822 предусматривается разбиение сообщения на две части. Первая часть называется заголовком. В нее вносятся все данные, идентифицирующие сообщение. Вторая часть называется телом сообщения. Заголовок состоит из полей данных, которые используются по мере необходимости внесения дополнительной информации в сообщение. Поля заголовка и тело сообщения должны разделяться пустой строкой. Для полей заголовка не существует определенного порядка следования, т.е. поля заголовка могут располагаться в произвольном порядке. Кроме того, в одном сообщении поля заголовка могут повторяться. На рис. 5.1 представлен общий вид почтового сообщения, соответствующего требованиям RFC 822.

Формат сообщения, согласно RFC 822

Рис. 5.1. Формат сообщения, согласно RFC 822
Поле заголовка Received

Формат поля заголовка Received: (Принято:) следующий:

Received:
from host name
by host name
via physical-path
with protocol
id message-id
for final e-mail destination

Поле заголовка Received используется для идентификации SMTP-серверов, которые принимали участие в процессе доставки сообщения от отправителя получателю. Каждый сервер добавляет к почтовому сообщению свое поле Received, с указанием специфических сведений о себе. Субполя в поле Received указывают на путь, протокол и компьютеры, принимавшие участие в передаче сообщения.

Поле заголовка Return-Path

Формат этого поля заголовка следующий:

Return-Path: route

Последний SMTP-сервер в цепочке пересылки добавляет к сообщению поле возврата ( Return-Path ). Его цель — определение маршрута, посредством которого сообщение достигло получателя. Если сообщение было послано напрямую на сервер получателя, то в этом поле будет отображаться только один адрес. В противном случае здесь будет отображаться полный список серверов, через которые прошло сообщение, чтобы достичь адресата.

Поле заголовка Originator

В поле Originator указывается адрес отправителя сообщения. Эта информация весьма полезна в ситуации, когда сообщения были отвергнуты несколько раз частными сетями, прежде чем они попали в сеть Internet. Формат этого поля следующий:

Reply-To: address

Поле Originator является всего лишь небольшим вспомогательным полем в многоцветье полей заголовка. Оно может быть использовано в качестве более простого пути для небольших SMTP-пакетов. При этом необходимость в более сложных полях заголовка, по которым определяется отправитель, отпадает.

Поле заголовка Resent

Поле заголовка Resent идентифицирует почтовое сообщение, которое по какой-либо причине должно было повторно посылаться клиентом. Формат этого поля следующий:

Resent-Reply-To:
address
Поля заголовка Authentic

Данные поля заголовка идентифицируют отправителя электронного сообщения. Формат полей Authentic:

From: user-name
Sender: user-name

Поле From:(От:) идентифицирует автора сообщения. Обычно в полях From: и Sender:(Отправитель:) указывается один и тот же пользователь, так что в действительности требуется только одно из этих полей. В том случае, когда отправитель почты не является автором сообщения, а оно лишь посылается с его адреса, оба поля все равно должны быть указаны — этим обеспечивается возврат сообщения отправителю, если доставка его адресату оказалась невозможной.