我在一台主机上运行 Postfix 3.3.0,该主机充当开发环境的邮件服务器。因此,它会像本地邮件一样捕获所有邮件。但为了使访问收到的邮件更加容易,它会根据发件人地址将这些邮件拆分到邮箱中。
以前我使用的是:
smtpd_sender_restrictions = hash:/etc/postfix/sender_access
效果完全符合预期。但是,这只会将匹配应用于发件人地址的域部分。我的用户希望根据整个发件人地址拆分邮件,因此我将上面的行更改为:
check_sender_access = hash:/etc/postfix/sender_access
但是,当我重新加载此配置时,日志中会报告以下情况:
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: check_sender_access=hash:/etc/postfix/sender_access
(并且重定向不起作用)。
与 Postfix 版本配套的手册页包含对 check_sender_access 的描述 - 它似乎受到支持。
我究竟做错了什么?
main.cf 包含....
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
myorigin = devmail.example.com
check_sender_access = hash:/etc/postfix/sender_access
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_alias_maps = pcre:/etc/postfix/virtual.alias.txt
mydestination = pcre:/etc/postfix/localdeliverydomains.txt
luser_relay = default
relayhost =
mynetworks = 10.1.0.0/16 127.0.0.0/8
inet_interfaces = all
recipient_delimiter = +
smtpd_relay_restrictions = reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks
myhostname = devmail.example.com
mailbox_size_limit = 1280000000
# tested with compatibility_level unser, =2 and =3
compatibility_level = 3
答案1
事实证明正确的语法是:
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access