У меня есть smtp server exim. Я хочу запретить отправку рикошетов, если письмо пришло на несуществующий адрес. Я добавил в начало acl в конфиге:
begin acl
acl_check_rcpt:
deny domains = +local_domains
message = Can't verify recipient
!verify = recipient
но мне это не помогло.
в логе видно что рабочий роутер:
rcpt_check_router:
driver = redirect
allow_fail
no_verify
data = "${if eq{}{${lookup mysql{ SQLUSR }}}{:fail: unknown local user}{$local_part@$domain} }"
когда: fail: было заменено: blackhole:
rcpt_check_router:
driver = redirect
allow_fail
no_verify
data = "${if eq{}{${lookup mysql{ SQLUSR }}}{:blackhole: unknown local user}{$local_part@$domain} }"
нет сообщения о недоставке. но exim получает сообщение.
Как использовать: сбой: без электронного письма отправителю из системы доставки почты?
Ваш ACL уведомит отправляющий сервер о том, что адрес не был принят. Если вы хотите избежать отскока недействительных объявлений, в этом случае вам нужно их принять. В качестве альтернативы вы можете отложить, что заставит отправляющий сервер повторно поставить сообщение в очередь. Большинство спам-ботов не повторяют попытку.
Если вы не отказываетесь от подписки и не перекладываете ее на законных отправителей, вы, скорее всего, будете получать большие объемы почты на адреса, которые когда-то были действительными. В стандартной конфигурации любые сообщения, отправленные, когда вы отклоняете отправителя, отправляются отправляющим сервером, а не Exim. Возврат сообщений после их принятия приводит к обратному рассылке спама.
Если вы принимаете все сообщения в локальные домены, вам следует настроить маршрутизатор для отправки почты на недопустимые адреса электронной почты. Если вы ошиблись с маршрутизатором, вы можете сбросить действующий адрес электронной почты. Похоже, ваш роутер должен работать, если вы согласитесь. Однако, если вызов базы данных завершится неудачно, вы можете скрыть законные сообщения.