Я хочу, чтобы 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 = *