Я недавно обнаружил, что /etc/mail/sendmail.mc
поддерживает записи, которые не в синтаксисе m4. Например:
LOCAL_CONFIG
O CipherList=HIGH
Для меня это не имеет смысла, потому что почти все остальное, что по умолчанию в файле mc, имеет ожидаемый синтаксис (например, dnl define(
)
Какие типы вещей требуют синтаксиса m4 в файле MC, а какие нет?
В конечном итоге Sendmail использует файл sendmail.cf. Такой синтаксис позволяет добавлять строки непосредственно в sendmail.cf без преобразования макросов. Раньше люди редактировали свои файлы sendmail.cf напрямую, а у нас не было файлов sendmail.mc.
Если вы посмотрите на файл sendmail.cf, который генерирует sendmail.mc (через m4), вы увидите много:
O variable=value
линий.
m4
это макропроцессор.
В sendmail.cf
файл, который на самом деле использует Sendmail, имеет свой собственный уникальный формат, не имеющий ничего общего с m4
, и людям чрезвычайно трудно с ним работать.
Скорее, m4
используется как препроцессор для генерировать в sendmail.cf
файл из sendmail.mc
файл. Макросы, которые вы бы использовали в sendmail.mc
намного легче понять и скрывают большую часть сложности истинной конфигурации.