我正在尝试确定 Postfix 配置中的正确访问权限,以要求对所有直接提交(即从应用程序向用户发送电子邮件)进行用户身份验证,但在接收来自其他 MTA(gmail 等)的电子邮件时不需要身份验证。
我试过这个:
smtpd_relay_restrictions = permit_sasl_authenticated reject_unauth_destination
smtpd_client_restrictions = permit_sasl_authenticated reject_unauth_destination
但这允许未经身份验证直接提交给允许目的地中的任何用户。
我也尝试过:
smtpd_relay_restrictions = permit_sasl_authenticated reject_unauth_destination
smtpd_client_restrictions = permit_sasl_authenticated reject
但这会阻止中继到我的服务器(从 gmail),因为 gmail 没有身份验证凭据。
知道如何实现这一点吗?
我的解决方案是使用
smtpd_recipient_restrictions
而不是 smtpd_client_restrictions
...并使用 check_recipient_access
查找允许的本地用户/别名。
工作配置:
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/allowed_recipients permit_sasl_authenticated reject