[Exim] Persistent address_data

Top Page
Delete this message
Reply to this message
Author: Russell Wilton
Date:  
To: exim-users
Subject: [Exim] Persistent address_data
Hi:
Environment: Exim 4.05 on a Dell Intel server running RedHat Linux 7.2

I am trying to implement a very simple mailing list facility where the
list information is stored in an LDAP entry. The pertinent routers in
my config file are as follows:

get_ldap_data:
driver = redirect
address_data = LISTBYADDR
data =

class_mlist:
driver = redirect
senders = ${tr{${LSTMEMB}}{,}{:}}
data = ${LSTMEMB}

where LISTBYADDR is a macro to do the LDAP search and LSTMEMB is a macro
to extract the member email addresses from the associated LDAP
attribute. The first router gets the LDAP entry and then declines. The
second router then uses the LDAP data to check that the sender is a
member of the list before routing the message. This works fine if the
list exists, but if the first router fails to find an LDAP entry, the
second router uses whatever was left in address_data by previous
routers. This produces unexpected and undesireable results, the most
benign of which is generating a sender verify error when it is really an
unroutable address.

What I need is a way to make the router 'pass' when the LDAP search
fails, so that I could use 'pass_router' to just skip the second router
in that case. Or perhaps a 'decline_router' command could be created
for this purpose. Can anyone see a solution here? Do I need a
completely new approach to the problem? Any comments greatly appreciated.

Russ

--
Russell D. Wilton                     E Mail: WILTON@???
Network Services Manager              Voice:   (403) 329-2525
University of Lethbridge              FAX:     (403) 382-7108
4401 University Drive   Lethbridge, Alberta, CANADA   T1K 3M4