3.6. Определения полей
В этом параграфе определены поля заголовка сообщения. Все поля заголовка имеют одинаковую синтаксическую структуру: имя поля, за которым следует двоеточие (:) и тело (значение) поля. Конкретный синтаксис каждого поля заголовка определен в соответствующем подпараграфе.
Важно подчеркнуть, что порядок следования полей заголовка не гарантируется. Поля заголовков могут появляться в произвольном порядке. Более того, известно, что порядок полей заголовков может изменяться при передаче сообщений через Internet. Однако в соответствиии с данной спецификацией порядок полей заголовка не следует менять при передаче или преобразовании сообщений. Более важно отметить, что порядок трассировочных полей и полей resent изменять недопустимо и следует сохранять эти поля в блоках, добавляемых в начало сообщения (prepend). Дополнительная информация об этих полях содержится в параграфах 3.6.6 и 3.6.7.
Обязательными полями заголовка являются только поле даты и поле адреса отправителя сообщения. Все остальные поля являются синтаксически опциональными. Дополнительная информация приведена в таблице вслед за определением.
fields = *(trace *optional-field / *(resent-date / resent-from / resent-sender / resent-to / resent-cc / resent-bcc / resent-msg-id)) *(orig-date / from / sender / reply-to / to / cc / bcc / message-id / in-reply-to / references / subject / comments / keywords / optional-field)
Приведенная ниже таблица показывает минимальное и максимальное число полей каждого типа в разделе заголовков сообщения, а также ограничения на использование полей. Звездочка (*) после в колонке минимального или максимального числа полей говорит о наличии дополнительных ограничений, указанных в колонке «Примечания».
Поле | Минимум | Максимум | Примечания |
trace | 0 | Не ограничен | Блок добавляется в начало, см. параграф 3.6.7 |
resent-date | 0* | Не ограничен* | Одно на блок; требуется при наличии других полей resent, см. параграф 3.6.6 |
resent-from | 0 | Не ограничен* | Одно на блок, см. параграф 3.6.6 |
resent-sender | 0* | Не ограничен* | Одно на блок; должно присутствовать при наличии множества адресов, см. параграф 3.6.6 |
resent-to | 0 | Не ограничен* | Одно на блок, см. параграф 3.6.6 |
resent-cc | 0 | Не ограничен* | Одно на блок, см. параграф 3.6.6 |
resent-bcc | 0 | Не ограничен* | Одно на блок, см. параграф 3.6.6 |
resent-msg-id | 0 | Не ограничен* | Одно на блок, см. параграф 3.6.6 |
orig-date | 1 | 1 | |
from | 1 | 1 | См. sender и параграф 3.6.2 |
sender | 0* | 1 | Должно присутствовать при наличии множества адресов, см. параграф 3.6.2 |
reply-to | 0 | 1 | |
to | 0 | 1 | |
cc | 0 | 1 | |
bcc | 0 | 1 | |
message-id | 0* | 1 | Следует включать, см. параграф 3.6.4 |
in-reply-to | 0* | 1 | Следует включать, см. параграф 3.6.4 |
references | 0* | 1 | Следует включать, см. параграф 3.6.4 |
subject | 0 | 1 | |
comments | 0 | Не ограничен | |
keywords | 0 | Не ограничен | |
optional-field | 0 | Не ограничен |
Точная интерпретация каждого поля рассмотрена в последующих параграфах.