Назад | Перейти на главную страницу

Как принять сообщение только от аутентифицированного пользователя

Я хочу, чтобы 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 (предположим, что оба домена имеют этих пользователей). Если я аутентифицируюсь как user1@local1.com, я могу ПОЧТАТЬ ОТ: user2@local1.com и даже user2@local2.com. Но я хочу запретить другим пользователям, даже если они местные. Допускается только user1@local1.com.

Во время аутентификации учетные данные пользователя хранятся в $auth1, $auth2 и $auth3 переменные. В частности, $auth1 содержит логин пользователя в форме localpart@domain.tld. Итак, вам нужно просто проверить, соответствует ли этот логин $sender_address:

accept
  authenticated = *
  condition     = ${if eq{$auth1}{$sender_address}}

deny
  authenticated = *