Интересная картинка:Два почтовых сервера, один в локалке (MS Exchange), второй на границе между локалкой и интернетом (Exim4). Почта принимается exim'ом, отправляется на Exchange, назад также. Схема весьма стандартная.
Exim настроен таким образом, что приняв почту снаружи, он отдаёт её amavisd-new, т.е. первый же роутер в конфиге выглядит так:
amavis:
driver = manualroute
condition = "${if eq {$interface_port}{10025} {0}{1}}"
transport = amavis
route_list = "* localhost byname"
self = sendamavis проверяет на вирусы и прочие нужные вещи, и отдаёт обратно exim'у, который согласно роутеру hubbed_hosts отправляет это на Exchange.
Всё отлично, не хватало лишь проверки на существование почтовых ящиков на Exchange, и картинка получалась некрасивая: exim принимал почту для любых ящиков, генерируя отлупы сотнями.
Естественно использовать для устранения проблемы callout, делаю это так:
accept domains = +relay_to_domains
endpass
message = unrouteable address
verify = recipient/callout,defer_ok...и исполнительный exim при получении письма снаружи, и доходя до этой проверки, проверяет наличие ящика не на Exchange, а, согласно роутингу, у amavisd'а. amavisd, естественно, согласен на любые адреса получателей, и проверка проходит успешно.
Вопрос вполне понятен: как заставить exim для проверки использовать не тот router, который должен использоваться на самом деле?
Или, может быть, есть обходные пути?
>Интересная картинка:Картинка неверна в реализации задачи. Зачем amavis вообще? всё что он делает, умеет сам exim в более гибких рамках. Сделав такую конфигурацию вы заранее себя обрекли на мучения.
Однако, что вам мешает поставить _первым_ роутер проверки наличия пользователя? или просто использовать конструкции с no_verify
>Картинка неверна в реализации задачи. Зачем amavis вообще? всё что он делает,
>умеет сам exim в более гибких рамках. Сделав такую конфигурацию вы
>заранее себя обрекли на мучения.
я не настолько хорошо знаю exim, чтобы реализовать всё необходимое его средствами.>Однако, что вам мешает поставить _первым_ роутер проверки наличия пользователя?
ммм.. проверка наличия пользователя - это не роутер, это acl...> или просто использовать конструкции с no_verify
да, это помогло. ;-) спасибо за нужное ключевое слово.