/etc/mail/sendmail.mc文件中的dnl和dnl #有什么区别? 如果我想启用什么东西需要在前面? 同样,如果我想“注释”某些东西,我需要什么前缀?
例如:
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well dnl # dnl FEATURE(masquerade_entire_domain)dnl dnl # dnl MASQUERADE_DOMAIN(localhost)dnl dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl dnl MASQUERADE_DOMAIN(foo.com)dnl dnl MASQUERADE_DOMAIN(foo2.lan)dnl MAILER(smtp)dnl MAILER(procmail)dnl dnl MAILER(cyrusv2)dnl
dnl和#这里有一个细微但重要的区别。
dnl意思是“通过换行删除” 。 当你使用m4 (或可能是某个前端)将sendmail.mc成sendmail.cf , dnl及其后的所有字符( 包括下一个换行符)将被删除。 (所有这些行以dnl 结尾 ,以抑制sendmail.cf输出中的多余空行。)
如果没有以dnl结尾的行,将会使其从sendmail.mc和sendmail.cf删除。
当然,输出中的任何内容都将是sendmailconfiguration或以#开始的注释,它将被原样复制到sendmail.cf ,在那里它们将被忽略。
任何以#开始并且没有被删除的东西都会使sendmail.cf作为注释被解除。
在你的例子中,有人意味着要从sendmail.cf删除所有的注释function,以及注释,因为如果没有这些function,注释将变得毫无意义。