приветствую
вчера встала задача на дружественном сервере реализовать доставку почты
в ходе постепенной миграции пользователей из mysql базы на FreeBSD в
Active Directory.
т. е. внутри локалки был поднят Exchange, exim должен был по-прежнему
принимать почту из внешнего мира, проверять существование пользователя,
после чего маршрутизировать почту внутрь сети на Exchange.
нюанс состоял в том, что пользователи переносились в AD постепенно. т.
е. с точки зрения exim часть пользователей локального домена были
нелокальными.
для решения данной задачи такой вот доставки в рамках паровоза в
mailertable были добавлены две строки:
*@domain.tld : ${lookup ldap{user="ldapsearch на ad.domain.tld"
pass="xxxxxxxx"
ldap://10.0.0.1/dc=ad,dc=domain,dc=tld?proxyAddresses?sub?(proxyAddresses=smtp:${quote_ldap:$local_part@$domain})}{smtp:10.0.0.2}{virt:$local_part@$domain}}
domain.tld|callout : ${lookup ldap{user="ldapsearch на ad.domain.tld"
pass="xxxxxxxx"
ldap://10.0.0.1/dc=ad,dc=domain,dc=tld?proxyAddresses?sub?(proxyAddresses=smtp:${quote_ldap:$local_part@$domain})}{smtp:10.0.0.2}{virt:$local_part@$domain}}
здесь domain.tld - это наш частично локальный домен
ad.domain.tld - доменная зона домена windows
ldapsearch - доменный пользователь с правами на чтение из AD данных о
пользователях
10.0.0.1 - адрес хоста домен контроллера
10.0.0.2 - адрес хоста с Exchange
первая запись используется при принятии решения о маршруте доставки
письма (корректность выбора маршрута проверяется с помощью exim -bt)
вторая запись использутся при verify = recipient (корректность выбора
маршрута проверяется с помощью exim -d -bv)
для решения данной задачи потребовалась реализация экспандинга
результатов запросов в mailertable, для чего в deliveries/mailertable.m4
в LOOKUP_MAILERTABLE_TEXT и LOOKUP_CALLOUTTABLE_TEXT было добавлено
опциональное использование ${expand:
т. е. данная конструкция будет работать только если в качестве значения
confMAILERTABLE используется TEXT
p. s. сегодня практически такой же вопрос был поднят в
exim-users на mailground.net:
http://mailground.net/pipermail/exim-users/2011-September/000486.html
но там все застряло еще на этапе авторизации при выполнении LDAP запроса
--
Best wishes Victor Ustugov mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC