后缀master.cf与main.cf

我在很多时候都看到,在main.cf和master.cf中都可以使用-o前缀来指定相同的设置。

我的问题是,是否重写另一个,如果是的话,哪个文件被优先考虑,如果在两个中都find相同的设置(使用不同的值)?

例如,如果

smtpd_tls_auth_only=yes 

在main.cf中指定,但是

 -o smtpd_tls_auth_only=no 

在master.cf中指定,哪一个会postfix注意?

据记载

 -o name=value Override the named main.cf configuration parameter. 

main.cf设置master.cf中定义的所有服务使用的默认值; master.cf中的-o选项可以在每个服务的基础上覆盖这些选项。

基本上main.cf中的设置是有效的,并在全局使用,除非它们在master.cf中为特定的Postfix守护进程(smtpd,trivial-rewrite,cleanup,pickup,…)覆盖。 例如,您可以在main.cf中指定smtp_tls_security_level = may ,并为绑定到smtpd守护程序的localhost的提交端口禁用它:

 localhost:submission inet n - - - - smtpd -o smtpd_tls_security_level=none 

但是对于外部IP地址上的提交端口,您可以强制encryption:

 1.2.3.4:submission inet n - - - - smtpd -o smtpd_tls_security_level=encrypt -o ... 

在某些情况下,您可能必须覆盖全局设置,例如在使用Amavisd时,需要在通过Amavisd smtpd守护程序发送邮件时禁用地址映射(别名扩展等)。 否则收件人可能会收到重复的邮件:

 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o ... -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings -o ... 

当然,在Amavis以外的常规操作中,你需要地址映射,所以默认情况下它们是在main.cf中启用的。