The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"Exim ldap virtual user и hubbed"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / Linux)
Изначальное сообщение [ Отслеживать ]

"Exim ldap virtual user и hubbed"  +/
Сообщение от mcshel (ok) on 23-Дек-16, 11:23 
Здравствуйте!

Настраиваем почтовую систему на базе exim и dovcecot + virtual users в LDAP. Возник следующий вопрос:

Есть такой route

virtual_user:
  driver = accept
  debug_print = "R: Check address using virtual_user"
  transport = ldap_delivery
  domains = +ldap_domains
  condition = CHECK_VIRTUAL_USER
  #cannot_route_message = Unknown user
  no_more

с проверкой существования юзера, приведу окончание CHECK_VIRTUAL_USER = ....... (proxyAddresses=smtp:${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain}))}}}{no}{yes}}

Ниже по конфигу есть еще один route в файле hubbed_hosts содержится *.mydomain.com

hubbed_hosts:
  debug_print = "R: hubbed_hosts for $domain"
  driver = manualroute
  # domains = ! +local_domains
  domains = "${if exists{CONFDIR/hubbed_hosts}\
                   {partial-lsearch;CONFDIR/hubbed_hosts}\
              fail}"
  same_domain_copy_routing = yes
  route_data = ${lookup{$domain}partial-lsearch{CONFDIR/hubbed_hosts}}
  # transport = remote_smtp
  transport = remote_smtp_hh

Если отправить на несуществующий адрес fdhghdfgj@my.mydomain.com, то exim сигнализирует, а том, что пользовтаель не найден, но перенаправляет письмо на smtp сервер, который указан в hubbed. Убрать *.mydomain.com пока не представляется возможным.

Что можно сделать no_more у меня почему-то не срабатывает.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Exim ldap virtual user и hubbed"  +/
Сообщение от DeadLoco (ok) on 28-Дек-16, 06:06 
> Что можно сделать no_more у меня почему-то не срабатывает.

И не должен. no_more гарантирует, что письмо не пойдет дальше роутера, если оно поймано кондишнами роутера. Если оно НЕ поймано (в вашем случае - не сработал CHECK_VIRTUAL_USER), то оно валится вниз по роутерам пока либо не случится соответствия всем условиям, либо не упрется в "can't route"

Вообще, проверки юзеров следует делать АЦЛями в фазе RCPT, чтобы не всасывать письмо целиком, а потом думать, что с ним делать. Как только отправитель указывает несуществующего получателя, следует вежливо, но непреклонно сообщить ему об этом. Но если все плохо, и все на роутерах, то вам надлежит сделать второй роутер вида:

no_virtual_user:
  driver = accept
  debug_print = "R: Check address failed"
  transport = null_transport
  domains = +ldap_domains
  condition = ! CHECK_VIRTUAL_USER
  no_more

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру