Структура 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
Reply-To: real_ivanov@a.ru
To: sidorov@vvsu.ru, "Petr Petrov" <petrov@vvsu.ru>
Сс: "Jonh Smith" <john@smith.a.com>, <sidorenko@c.ru>
Bcc: "Fox Mulder" <mulder@fbi.gov>
Subject: Happy New Year!
Date: Sat, 15 Jan 2000 17:25:32 +1000
Message-ID: <3.0.6.32.20000104175623.007badf0@mail.a.ru>
Received: ...
В большинстве писем встречаются заголовки, начинающиеся на "X-", это дополнительные заголовки, не определяемые стандартом. Например заголовок "X-Mailer:" содержит информацию о пользовательком агенте, отправившем письмо.
При пересылке (форвардинге) сообщения другому получателю в заголовки могут быть добавлены поля с префиксом "Resent-" ("Resent-From:", "Resent-To:", "Resent-Date" и т.п.). Эти поля содержат информацию, вставленную тем, кто произвел форвардинг. Например, поле "From:" содержит адрес первоначального отправителя, а "Resent-From:" - адрес того, кто переслал это сообщение. При таком способе форвардинга тело сообщения не изменяется, только добавляются заголовки.
[назад][содержание][вперед]