При каждом запуске 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) |
В следующих разделах каждая из команд настройки описана подробнее.