Провел небольшой эксперимент: удалил блок:
> rcpt_check_router:
> driver = redirect
> allow_fail
> no_verify
> data = "${if eq{}{${lookup mysql{ SQLUSR }}}{:fail: unknown
> local user}{$local_part@$domain} }"
после этого в логе посыпались ошибки от LDA что нет пользователя получателя и он не может ему письмо доставить.
вернул блок немного изменив его:
rcpt_check_router:
driver = redirect
allow_fail = yes
data = :fail: Unknown local user
no_more
в итоге получил в логе smtp :
rejected RCPT : Unknown local user
а отправителю пришел баунс от сервера отправления со значением:
SMTP error from remote mail server after RCPT TO:<nonuser@domain.example>:
550 Can't verify recipient
Взятый из блока:
>begin acl
>acl_check_rcpt:
>deny domains = +local_domains
> message = Can't verify recipient
> !verify = recipient
Подскажите я правильно понимаю что письмо приходит на сервер exim пытается отдать его на доставку LDA, тот говорит что нет такого пользователя, и тогда срабатывает роутер по обработке. Если это верно то как все же правильно проверить пользователя не отправляя на LDA а посмотреть его в базе перед приемкой?