我想要 exim 只接受来自通过 SMTP 授权的用户的消息。现在我在配置中有以下几行:
accept
authenticated = *
sender_domains = +local_domains
control = submission/sender_retain
control = dkim_disable_verify
deny
message = Unauthorized
sender_domains = +local_domains
!authenticated = *
这使得任何授权用户都可以从本地域发送消息。例如,我有两个域:local1.com 和 local2.com,以及用户 user1 和 user2(建议两个域都有这些用户)。如果我以[电子邮件保护]我可以通过以下方式发送邮件:[电子邮件保护]乃至[电子邮件保护]。但我想拒绝任何不同的用户,即使他们是本地用户。只有[电子邮件保护]必須被接受。
答案1
在身份验证期间,用户的凭据存储在$auth1
、$auth2
和$auth3
变量中。更具体地说,$auth1
包含表单中的用户登录信息[电子邮件保护]。因此,您只需验证该登录是否等于$sender_address
:
accept
authenticated = *
condition = ${if eq{$auth1}{$sender_address}}
deny
authenticated = *