我想附加到的默认 Postfix 值local_recipient_maps
,定义为:
% postconf | grep '^local_recipient_maps'
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
基于文档似乎我应该能够在新值中引用默认值,所以我这样做了:
# postconf 'local_recipient_maps = $local_recipient_maps hash:/var/lib/mailman3/data/postfix_lmtp'
但是当我postconf
再次运行时,它给出了一个宏错误:
% postconf | grep '^local_recipient_maps'
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
postconf: warning: unreasonable macro call nesting: "local_recipient_maps"
postconf: fatal: macro processing error
显然这不是什么大问题,因为我只需复制并粘贴原始默认值,但我想知道我是否做错了什么/这是否(应该)可能,因为它可以很好地将参数的不同部分分成几部分,并使用注释标题解释它们的用途(例如,这一部分将进入一个# Mailman
部分,因为显然只有最后一张地图local_recipient_maps
与 Mailman 相关)。
apt policy postfix
如果这很重要的话,我在 Debian 10 上使用 Postfix 3.4.10-0+deb10u1(根据)。
答案1
如果您在 main.cf 中定义了所有 mua_* 参数,那么它们必须具有实际存在的对应内容。
针对您的具体情况,您很可能会遇到以下情况:
smtpd_restriction_classes = mua_sender_restrictions, mua_client_restrictions, mua_helo_restrictions
但你没有在 *.cf 中定义smtpd_client_restrictions=mua_client_restrictions
你最终应该得到如下结果:
smtpd_restriction_classes = mua_sender_restrictions, mua_client_restrictions, mua_helo_restrictions
mua_client_restrictions = permit_sasl_authenticated, reject
mua_sender_restrictions = permit_sasl_authenticated, reject
mua_helo_restrictions = permit_mynetworks, reject_non_fqdn_hostname, reject_invalid_hostname, permit