如何仅接受经过身份验证的用户的消息

如何仅接受经过身份验证的用户的消息

我想要 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 = *

相关内容