我正在努力解决如何让postfix只允许电子邮件通过特定的电子邮件地址。
我使用以下配置使其工作:
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access, reject
然后访问包含
example1.com OK
example2.com OK
miles@example3.com OK
这起到了作用——发送到白名单之外的任何邮件都被邮件服务器拒绝了。
然后我想通过gmail发送所有的邮件,所以添加了
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
现在看来,postfix忽略了白名单,并将所有内容发送到gmail服务器。
有人能解释为什么会发生这种情况吗?我可能需要做些什么来解决这个问题?
简而言之,我希望所有邮件都通过gmail帐户发送,但前提是收件人地址在白名单中
请显示一些日志。
我怀疑你是通过/usr/bin/sendmail
或postdrop
发送电子邮件。这两个命令都绕过了smtpd,也绕过了smtpd_recipient_restrictions
,因为它们将本地传递到后缀,而不是通过网络。
如果发送的电子邮件是通过网络(也通过smtpd)到达的,那么也显示配置(postconf -n
),因为您可能有其他配置正在更改这些电子邮件的最终结果。