
опционально секунды (second), разделенные двоеточиями. Часы (hour)
записываются двумя цифрами, минуты записываются двумя цифрами, секунды
записываются тоже двумя цифрами). Часовой пояс записывается знаком +/– и
четырехзначным числом, эта конструкция показывает отклонение местного
времени от Гринвичского времени. Рассмотрим несколько примеров:
Date: Mon, 01 Jan 2004 11:01:20 +0300
Date: Fri, 17 Dec 2004 14:27 +0200 (секунды можно не указывать)
Date: 17 Dec 2004 14:27 +0200 (день недели можно не указывать)
Теперь рассмотрим формат представления адресов в RFC2822.
address = mailbox / group
mailbox = name-addr / addr-spec
name-addr = [display-name] angle-addr
angle-addr = [CFWS] "<" addr-spec ">" [CFWS] / obs-angle-addr
group = display-name ":" [mailbox-list / CFWS] ";"[CFWS]
display-name = phrase
mailbox-list = (mailbox *("," mailbox)) / obs-mbox-list
address-list = (address *("," address)) / obs-addr-list
addr-spec = local-part "@" domain
Выражение address (адрес) может представлять собой либо почтовый ящик
(mailbox) либо группу (group). Почтовый ящик может быть либо именованным
адресом (name-addr) либо специфицированным адресом (addr-spec).
Именованный адрес состоит из отображаемого имени (display-name) и
экранированного (ну не могу я лучше слова подобрать!) адреса (angle-addr).
Отображаемое имя (display-name) – это просто произвольная совокупность
отображаемых ASCII символов, экранированный адрес (angle-addr) представляет
собой специфицированный адрес, заключенный в знаки <>.
Специфицированным адресом (addr-spec) называют адрес в виде local-part "@"
domain, где local-part (локальная часть) – имя пользователя в домене, domain –
имя домена.
Группа (group) представляет собой отображаемое имя группы (display-
name), двоеточие, затем может идти список почтовых ящиков (mailbox-list), сам
же mailbox-list представляет собой набор почтовых ящиков (mailbox),
разделенных запятыми.
Наконец, адреса (address) могут группироваться в группы адресов
(address-list), группа адресов представляет собой список адресов, разделенных
запятыми.
Хотя и данная синтаксическая система относительно громоздка, зато ее
понимание позволит впоследствии легко рассматривать формат опций.
Итак, начнем рассмотрение заголовков письма с заголовка Date. Данное
поле должно устанавливаться почтовой программой, с помощью которой
пользователь написал письмо в тот момент, когда письмо написано и готово для
отправки или в момент, когда пользователь пытается отправить письмо с
помощью своей почтовой программы.
Если вдруг почтовая программа
пользователя НЕ установила в заголовке письма поле Date, почтовый сервер,
получивший письмо от почтового клиента часто устанавливает в заголовок это
поле с текущим значением даты. Данное поле заголовка крайне полезно для
получателя письма, так как из него получатель письма может сделать вывод о
том, когда письмо было создано, сравнить время создания письма со временем
получения письма своей почтовой программой и использовать письмо в своей
деятельности с учетом знания того, когда письмо было написано. Формат
данного поля: