Hi, i have a problem with ldap, and these one is VERY strange
exim 4.05
FILTERFILE=${lookup\
ldap{ldap:///uid=${quote_ldap:$local_part}, ou=users,domain=\
${quote_ldap:$domain},o=host?filterfile?sub?\
(mailacceptinggeneralid=${quote_ldap:$local_part}@\
${quote_ldap:$domain})}}
when i use this macro in a router like this one
ldap_forward:
driver = redirect
allow_filter
check_ancestor
no_check_local_user
no_expn
condition = ${if eq {}{FILTERFILE}{no}{yes}}
require_files = FILTERFILE
data = ${sg{${readfile{FILTERFILE}}}{save\\s+([^/].*)\\s*}\
{save USERHOME/$local_part/\$1\\n}}
file_transport = local_delivery
pipe_transport = address_pipe
reply_transport = address_reply
directory_transport = local_delivery
retry_use_local_part
user = mail
verify = false
exim brings a error-message like this
LOG: MAIN
== duke@??? R=ldap_forward defer (-1): failed to expand "${lookup
ldap {ldap" for require_files: missing } at end of string
in the debug log, when i drop require_files and use this instead:
condition = ${if and { {!eq {}{FILTERFILE}} {exists {FILTERFILE}} }
{yes}{no} }
It works, so i think the makro is ok (i tried it without makros, same
results).
Any idea what's wrong?
Another thing.
How to read the list of domains from ldap?
At the moment i use this
domainlist local_domains = ${sg {${lookup ldapm \
{ldap:///o=host?domain?one?(objectclass=dnsdomain)}}}{\\n}{:}}
but this is ugly ;))) is there another/better way?
ciao