Sendmail Installation and Operation Guide


D - Определение Макроса


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

Синтаксис определения макросов таков: Dxval

Где x - имя макроса (которое может быть одним символом или словом в скобках), а val - значение, которое должен иметь этот макрос. При этом не должно быть пробелов, не принадлежащих содержимому значения макроса.

Макросы интерполируются использованием конструкции $x, где x - имя макроса для интерполяции. Эта интерполяция производится при чтении файла конфигурации, кроме строк M. Специальная конструкция $&x может быть использована в строках R для получения косвенной интерполяции.

Условные зависимости могут быть определены использованием синтаксиса: $?x text1 $| text2 $.

Это интерполирует text1, если назначен макрос $x, и text2 в обратном случае. Оператор "иначе" ($|) может быть опущен.

Имена макросов из маленьких букв зарезервированы для специальной семантики, используемой при проходе информации в или из sendmail, а специальные символы зарезервированы для условий и т.п. Имена из заглавных букв (т.е., от $A до $Z) специально зарезервированы для авторов файла конфигурации.

Следующие макросы определяются и/или внутренне используются sendmail'ом для интерполирования в argv для почтовых программ или других контекстов. Те, которые отмечены знаком | пропускают информацию в sendmail3, отмеченные знаком | пропускают информацию и в и из sendmail, не отмеченные макросы пропускают из sendmail, но внутренне больше никак не используются. Вот эти макросы:

$a Исходящая дата в формате RFC 822. Выделяется из строки Date:.
$b Текущая дата в формате RFC 822.
$c Счетчик пересылок. Это счетчик числа строк Received: плюс значение флага командной строки -h.
$d Текущая дата в формате UNIX (ctime).
$e| (Устарел; вместо него используйте опцию SmtpGreetingMessage.) Сообщение на входе SMTP. Печатается при запуске SMTP. Первое слово должно быть макросом $j, как определено RFC821. По умолчанию "$j Sendmail $v ready at $b". Обычно переопределяется, чтобы указать номер версии конфигурации, например, "$j Sendmail $v/$Z ready at $b"
$f Конвертный адрес отправителя (from).
$g Адрес отправителя по отношению к получателю. Например, если $f - "foo", $g будет "host!foo", "foo@host.domain", или что-нибудь другое, соответствующее принимающей почтовой программе.
$h Хост получателя. Устанавливается в наборе правил 0 из поля $# анализируемого адреса.
$i Идентификационный номер в очереди, например, "HAA12345".
$j| "Официальное" доменное имя для этого узла. Оно полностью уточнено, если может быть найдена полная квалификация. Оно должно быть переопределено, чтобы быть полностью уточненным доменным именем, если ваша система не сконфигурирована таким образом, что может найти его автоматически.
$k Имя узла UUCP (из системного вызова uname).
$l| (Устарел; вместо него используйте опцию UnixFromLine.) Формат строки UNIX from. До тех пор, пока вы не измените формат почтового ящика UNIX, вы не должны изменять умолчание, которое равно "From $g $d".
$m Доменная часть значения возвращенного gethostname.При нормальных обстоятельствах, $j эквивалентен $w.$m.
$n| Имя демона (для сообщений об ошибках). По умолчанию "MAILER-DAEMON".
$o| (Устарел: вместо него используйте опцию OperatorChars.) Набор "операторов" в адресах. Список знаков, которые могут быть рассмотрены как обозначения, и которые будут разделять значения во время анализа. Например, если "@" было в макросе $o, то ввод "a@b" будет просканирован как три обозначения: "a," "@," и "b." По умолчанию ".:@[]", минимально необходимые для анализа по RFC 822; более богатый набор операторов - ".:%@!/[]", добавляющий поддержку для UUCP, %-hack, и адресов X.400.
$p Идентификационный номер процесса sendmail.
$q| Формат адреса отправителя по умолчанию. Макрос $q указывает, как должен выглядеть по умолчанию адрес отправителя в сообщении. По умолчанию "<$g>". Обычно переопределяется на "$?x$x <$g>$|$g$." Или "$g$?x ($x)$.", соответствующим двум следующим форматам: Eric Allman <eric@CS.Berkeley.EDU> eric@CS.Berkeley.EDU (Eric Allman) Sendmail надлежащим образом квотирует имена, имеющие специальные знаки, если используется первая форма.
$r Протокол, использовавшийся для получения сообщения. Выставляется из флага командной строки -p или кодом сервера SMTP.
$s Имя хоста отправителя. Выставляется из флага командной строки -p или кодом сервера SMTP.
$t Числовое представление текущего времени.
$u Пользователь-получатель.
$v Номер версии бинарного файла sendmail.
$w| Hostname этого узла. Корневое имя для этого хоста (смотри ниже всякие нерулезности).
$x Полное имя отправителя.
$z Домашний каталог получателя.
$_ Подтвержденный адрес отправителя.
${bodytype} Тип тела сообщения (7BIT или 8BITMIME), определенный из конверта.
${client_addr} IP адрес клиента SMTP. Определяется только в сервере SMTP.
${client_name} Имя хоста клиента SMTP
${client_port} Номер порта клиента SMTP. Определяется только в сервере SMTP.
${envid} Идентификационный номер конверта, переданный в sendmail как часть конверта.
${opMode} Текущий режим работы (из флага -b).
<


Начало  Назад  Вперед