При каждом запуске sendmail выполняет чтение файла sendmail.cf. По этой причине синтаксис команд sendmail.cf разработан с целью облегчения их разбора программой, но совсем не обязательно людьми. Как следствие, команды sendmail очень кратки, даже по стандартам Unix.

Команда настройки и ее переменные части или аргументы не разделяются пробелами. Такой «потоковый» формат затрудняет чтение команд. Формат команды иллюстрирует рис. 10.2. Команда макроопределения присваивает значение wrotethebook.com макропеременной D.

Рис. 10.2. Команда настройки sendmail.cf

Начиная с sendmail версии 8 длина имен переменных перестала ограничиваться одним символом. Теперь допустимы длинные имена переменных, заключенные в фигурные скобки. Например, макроопределение define из рис. 10.2 можно записать так:

D{Domain}wrotethebook.com

Длинные имена переменных проще для чтения и предоставляют больший выбор, чем ограниченный набор односимвольных имен. При этом старомодные, краткие имена переменных по-прежнему в ходу. Столь краткий синтаксис может быть весьма сложно расшифровать, но полезно помнить, что первый символ в строке всегда является командой. Он позволяет определить, о какой команде идет речь, а значит, и какова структура команды. В табл. 10.1 описаны команды sendmail.cf и их синтаксис.

Таблица 10.1. Команды настройки sendmail

Команда Синтаксис Назначение
Version Level Vlevel[/vendor] Указывает уровень версии
Define Macro Dxvalue Устанавливает х в значение value
Define Class Ccword1[ word2] ... Связывает класс с со значениями: word1 word2...
Oefine Class Fcfile Загрузка класса с из файла file
Set Option 0option=value Устанавливает для параметра option значение value
Trusted Users Tuser1[ user2 ...] Указывает доверенных пользователей: user1 useг2...
Set Precedence Pname=number Устанавливает для имени пате значение приоритета number
Define Mailer Mname, {field=value} Определяет имя (name) почтовой программы
Define Header H[?mflag?]name: format Устанавливает формат заголовка
Set Ruleset Sn Начинает набор правил с номером n
Define Rule Rlhs rhs comment Перезаписывает образец Ihs в формат rhs
Key File Кname type [argument] Определяет имя базы данных (name)

В следующих разделах каждая из команд настройки описана подробнее.