Re: [exim] Stupid lsearch/lookup-question?

Top Page
Delete this message
Reply to this message
Author: Mike Cardwell
Date:  
To: exim-users
Subject: Re: [exim] Stupid lsearch/lookup-question?
* on the Wed, Feb 21, 2007 at 03:56:39PM +0100, Jan Johansson wrote:

> I am trying to figure out how to make a simple lookup work right.
> Basically, I have a file in the form of
>
> Username:    yes
> Username2:    yes

>
> And I want to trigger a router if the user is listed herein. My current
> lookup does not seem to trigger as expected
>
> domain_redirect:
>         driver = manualroute
>         domains = mydomain.com
>         local_parts =
> ${lookup{$local_part}lsearch{/etc/exim4/domain-redirect}}
>         transport = remote_smtp
>         route_list = * 192.168.0.201
>         host_find_failed = defer
>         same_domain_copy_routing = yes
>         no_more


| mike@rabies:~/foo$ echo -ne "Username: yes\nUsername2: yes" >
| lookup_file.txt
| mike@rabies:~/foo$ /usr/sbin/exim4 -be
| > ${lookup{Username}lsearch{lookup_file.txt}}
| yes
| > ${lookup{UsernameFoo}lsearch{lookup_file.txt}}

|
| >


This shows that your lookup method returns either "yes" or "" when
expanded. This means that the only address that would match is
"yes@???" and that would only match if the username "yes" was
in the "domain-redirect" file.

The expansion should return the local part it's self. Try replacing
with:

${if eq{${lookup{$local_part}lsearch{lookup_file.txt}}}{yes}{$local_part}{}}

Mike