Команда Н определяет формат строк заголовка, вставляемых программой sendmail в сообщения. Формат команды заголовка: команда Н, необязательные флаги заголовка, заключенные в знаки вопроса, имя заголовка, двоеточие, шаблон заголовка.
Шаблон заголовка - это сочетание литералов и макроопределений, включаемых в строку заголовка. Перед вставкой заголовка в сообщение выполняется подстановка макроопределений в шаблоне. Синтаксис условных выражений, описанный для макроопределений, может использоваться и в шаблонах заголовков, и действует точно таким же образом: позволяет проверять, установлено ли значение макропеременной, и указывать альтернативные варианты.
Поле шаблона заголовка может содержать конструкцию %>name, используемую в правилах подстановки. В шаблоне заголовка конструкция %>пате позволяет вызывать набор правил пате для обработки заголовков входящих сообщений. Такая возможность полезна для фильтрации по заголовкам нежелательных писем (спама). Наборы правил, правила подстановки, конструкцию $>пате, равно как и применение всех этих сущностей, мы обсудим позже в этой главе.
Флаги заголовков часто вызывают больше вопросов, чем заслуживают. Назначение флагов очень простое: они определяют, должен ли тот или иной заголовок добавляться в сообщение, предназначенное определенной почтовой программе. В отсутствие флагов заголовок вставляется во все сообщения. Если указан флаг, заголовок используется только для сообщений, передаваемых через программу доставки, в определении которой присутствует тот же флаг. (Флаги почтовых программ перечислены в приложении Е.) Флаги заголовков управляют только вставкой заголовков. Если заголовок изначально присутствовал в исходных данных, он передается в конечном сообщении независимо от того, какие флаги установлены.
Вот некоторые определения заголовков из файла generic-linux.cf:
H?P?Return-Path: <$g> HReceived: $?sfrom $s $.$?_($?s$|from $.$_) H?D?Resent-Date: $a H?D?Date: $a H?F?Resent-From: $?x$x <$g>$|$g$. H?F?From: $?x$x <$g>$|$g$. H?x?Full-Name: $x H?M?Resent-Message-Id: <$t.$i@$j> H?M?Message-Id: <$t.>
Заголовков, определенных в файле sendmail.cf вашей системы, вполне до- статочно для большинства ситуаций. Маловероятно, что понадобится их из- менять.