Страница 1 из 1

Exim. Проблема с проверкой пользователя по списку

Добавлено: 2009-10-07 18:14:15
AlexP

Код: Выделить всё

Имеем связку Exim + Керио.
Добавил сервер Exchange.

Exim почти не знаю, но получил в наследство.

Собственно часть конфигурационного листа где происходит затык:
#Макрос проверки пользователей в Керио
RECPT_UID 	= ldap://directory.intra.net:389/o=finnflare?uid?sub?(&(objectClass=gosaAccount)(uid=${lc:$local_part}))
SENDER_UID 	= ldap://directory.intra.net:389/o=finnflare?uid?sub?(&(objectClass=gosaAccount)(uid=${lc:$sender_address_local_part}))
IS_KERIO_USER  	= ldap://directory.intra.net:389/o=finnflare?kerio-Mail-AccountEnabled?sub?(&(objectClass=kerio-Mail-User)(uid=${lc:$local_part}))
#end

SENDER_IS_ALIAS	= ${lookup{${lc:$sender_address_local_part}} lsearch{/etc/exim/${lc:$sender_address_domain}/aliases} {alias}{}}
SENDER_IS_LIST	= ${lookup{${lc:$sender_address_local_part}} lsearch{/etc/exim/${lc:$sender_address_domain}/lists}   {list}{}}
# Проверка пользователей Exchange
SENDER_IS_EXCHANGE_LIST =  ${lookup{${lc:$sender_address_local_part}} lsearch{/etc/exim/${1c:$sender_address_domain}/users}   {user}{}}
#end


RECPT_IS_ALIAS	= ${lookup{${lc:$local_part}} lsearch{/etc/exim/${domain}/aliases} {alias}{}}
RECPT_IS_LIST	= ${lookup{${lc:$local_part}} lsearch{/etc/exim/${domain}/lists} {list}{}}
# Проверка пользователей Exchange
RECPT_IS_EXCHANGE_LIST	= ${lookup{${lc:$local_part}} lsearch{/etc/exim/${domain}/users} {user}{}}
#end

deny	message		= You're not a local user
        	sender_domains	= +local_domains
		!condition	= ${if or {\
                                	{eq {SENDER_IS_USER} {user}}  \
                		        {eq {SENDER_IS_ALIAS}{alias}} \
                			{eq {SENDER_IS_LIST} {list}}  \	
					{eq {SENDER_IS_EXCHANGE_LIST} {user}}  \
                		  } {true}{false}}


        accept    
	        domains         = +local_domains
		condition	= ${if or {\
                                        {eq {SENDER_IS_USER} {user}}  \
                			{eq {RECPT_IS_ALIAS} {alias}} \
                			{eq {RECPT_IS_LIST}  {list}}  \
					{eq {RECPT_IS_EXCHANGE_LIST}  {user}} \
                		  } {true}{false}}
               endpass


Задача следующая:
по листу проверки пользователя (в листе уже присутствует имя тестового пользователя)
/etc/exim/${1c:$sender_address_domain}/users - для отправителя
/etc/exim/${domain}/users - для получателя

иметь возможность получать и отправлять почту для сервера exchange

Проблема  при отправке письма:

 failed to expand ACL string "${if or {{eq {${lookup ldap {ldap://directory.intra.net:389/o=finnflare?uid?sub?(&(objectClass=gosaAccount)(uid=${lc:$sender_address_local_part}))} {user}{}}} {user}}  {eq {${lookup{${lc:$sender_address_local_part}} lsearch{/etc/exim/${lc:$sender_address_domain}/aliases} {alias}{}}}{alias}} {eq {${lookup{${lc:$sender_address_local_part}} lsearch{/etc/exim/${lc:$sender_address_domain}/lists}   {list}{}}} {list}}  {eq {${lookup{${lc:$sender_address_local_part}} lsearch{/etc/exim/${1c:$sender_address_domain}/users}   {user}{}}} {user}} } {true}{false}}": } expected after number inside "or{...}" condition

 incomplete transaction (RSET) from <***>

Помогите пожалуйста.



Re: Exim. Проблема с проверкой пользователя по списку

Добавлено: 2009-10-07 18:32:43
aPetrov
При всем этом, если проверку пользователя проводить через макрос

SENDER_IS_LIST = ${lookup{${lc:$sender_address_local_part}} lsearch{/etc/exim/${lc:$sender_address_domain}/lists} {list}{}}

и комментированием строк в проверке:

{eq {SENDER_IS_EXCHANGE_LIST} {user}} \

{eq {RECPT_IS_EXCHANGE_LIST} {user}} \

то почта уходит, если не комментировать, то опять же не уходит, даже при проверке по другому списку