Структура email-сообщения

 

Структура email-сообщения

Базовая структура сообщения электронной почты определена в RFC-822. Сообщение состоит из заголовков и тела сообщения. Заголовки отделяются от тела сообщения пустой строкой.

Каждый заголовок начинается с новой строки и состоит из ключевого слова, за которым следует двоеточие, и данных:

From: "Sidorov" <sidorov@vvsu.ru>

Если длина данных превышает одну строку, то последующие строки, относящиеся к этому же заголовку, начинаются с табуляции:

Received: from u2.farm.idt.net (root@u2.farm.idt.net [169.132.8.11]) by
	m.vvsu.ru (8.9.1/8.9.1) with ESMTP id MAA00238 for
        <sidorov@vvsu.ru>; Wed, 5 Jan 2000 12:02:28 +1000 (VVO)

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

Изначально электронная почта предназначалась для пересылки только текстовых сообщений. Для пересылки двоичного содержимого двоичные данные специальным образом кодируются и сообщение снабжается дополнительными заголовками и служебной информацией в соответствии со спецификацией MIME, которая будет рассмотрена ниже.

При пересылке сообщения по протоколу SMTP говорят о третьей части сообщения - конверте. Конверт - это адреса отправителя и получателя (получателей), передаваемые как аргументы команд "MAIL FROM" (от кого) "RCPT TO" (кому) во время SMTP-сеанса. В простейшем случае адреса на конверте и адреса в заголовках "From:" и "To:" совпадают, но это далеко не всегда так.

Например, если письмо отправлено нескольким получателям в разные почтовые домены (petrov@a.ru, ivanov@b.ru, sidorov@c.ru, sidorenko@c.ru), то отправляющий MTA размножит это письмо и "разложит" его в 3 конверта, по одному конверту на домен. То есть, в SMTP-сеансе с сервером домена a.ru конверт будет содержать только "RCPT TO: petrov@a.ru", а в сеансе с сервером домена с.ru на конверте будет написано два адресата:

RCPT TO: sidorov@c.ru
RCPT TO: sidorenko@c.ru

в то время как в заголовке сообщения могут быть перечислены все адресаты (а могут и не быть - если письмо направлено на список рассылки типа my_friends@vvsu.ru, который состоит из вышеназванных адресов; тогда в заголовке будет адрес списка рассылки.

Вообще, переписывание заголовков и формирование конверта зависит от конфигурации траспортного агента и здесь имеется большой выбор разных вариантов и причин для отличия адресов в конверте от адресов в заголовках. Общее правило: конверт содержит информацию, необходимую для доставки сообщения через сеть; заголовки - информацию для транспортного и пользовательского агентов и самого пользователя.

Заголовки почтового сообщения

Ниже рассмотрены распространенные заголовки, кроме заголовков, добавленных спецификацией MIME.

 
From: ivanov@a.ru
отправитель; адрес также может иметь форму "Ivan Ivanov" <ivanov@a.ru>.
Reply-To: real_ivanov@a.ru
адрес, на который следует отправлять ответ на письмо. Если этот заголовок отсутствует, ответ отправляется на адрес, указанный в заголовке "From:".
To: sidorov@vvsu.ru, "Petr Petrov" <petrov@vvsu.ru>
основной получатель (получатели).
Сс: "Jonh Smith" <john@smith.a.com>, <sidorenko@c.ru>
дополнительный получатель (получатели), если необходимы. При доставке письма для адресов в заголовках "To:" и "Cc:" выполняются одинаковые действия; различия между "To:" и "Cc:" в техническом плане нет.
Bcc: "Fox Mulder" <mulder@fbi.gov>
получатель (получатели), невидимый для остальных получателей, если требуется. То есть те, кто перечислен в "To:" и "Cc:", не будут знать, что копия письма отправлена Малдеру.
Subject: Happy New Year!
тема письма (может отсутствовать); транспортными агентами и агентами доставки не интерпертируется; может интерпертироваться пользовательским агентом в целях фильтрации и сортировки.
Date: Sat, 15 Jan 2000 17:25:32 +1000
время отправки письма.
Message-ID: <3.0.6.32.20000104175623.007badf0@mail.a.ru>
уникальный идентификатор сообщения, генерируемый MTA-отправителем; для восприятия человеком не предназначен.
Received: ...
заголовок "Received:" добавляется каждым транспортным агентом, через которого проходит сообщение, содержит информацию кем, от кого, когда и каким образом получено сообщение.

В большинстве писем встречаются заголовки, начинающиеся на "X-", это дополнительные заголовки, не определяемые стандартом. Например заголовок "X-Mailer:" содержит информацию о пользовательком агенте, отправившем письмо.

При пересылке (форвардинге) сообщения другому получателю в заголовки могут быть добавлены поля с префиксом "Resent-" ("Resent-From:", "Resent-To:", "Resent-Date" и т.п.). Эти поля содержат информацию, вставленную тем, кто произвел форвардинг. Например, поле "From:" содержит адрес первоначального отправителя, а "Resent-From:" - адрес того, кто переслал это сообщение. При таком способе форвардинга тело сообщения не изменяется, только добавляются заголовки.

 


[назад][содержание][вперед]