Hi Phil,

I don't think you were at all rude. In fact, you were consise and provided just 
the answer I was looking for, and I thank you :-)

I had in the mean time been playing with....
        condition     = ${lookup pgsql{SELECT name FROM maildomains WHERE 
name='$domain' AND status='t';}{yes}{no}}
...which, if a single match is returned from the database evaluates to true/yes 
and if no rows returned is evaluated to false/no.

I have since also tried out your suggestion of using match_domain

          condition     = ${if match_domain{$domain}{+our_sql_maildomains} 
{yes}{no}}

but get the following
$ exim -bh 192.168.0.115
...helo and mail from...
rcpt to: [email protected]
...
>>> ourcompany.com in ": ourcompany.co.uk
>>> ourcompany.biz
>>> ourcompany.ltd.biz
>>> ourcompany.co
>>> ourcompany.com
>>> ourcompany.info
>>> ourcompany.ltd.info
>>> ourcompany.ltd.net
>>> ourcompany.org
>>> ourcompany.ltd.org
>>> ourcompany.ltd.co.uk
>>> ourcompany.me.uk
>>> ourcompany.ltd.me.uk
>>> ourcompany.org.uk
>>> ourcompany.ltd.org.uk"? no (end of list)
>>> ourcompany.com in "+our_sql_maildomains"? no (end of list)
>>> check condition = ${if match_domain{$domain}{+our_sql_maildomains} 
>>> {yes}{no}}
>>>                 = no
>>> accept: condition test failed in ACL "acl_check_rcpt"

So the expansion of +our_sql_maildomains IS calling postgresql AND executing 
the query AND returning a list of the company domain names AND doing the 
comparison which is all brilliant, but for whatever reason didn't match the 
domain :-(

Not sure if my sql query needs a tweek to return the domain list formatted 
differently or add crlf on end of needle or something else.... I'm not too 
worried about this though as I have a working exim config with the "${lookup 
pgsql{SELECT...}}"

Kind Regards

Ritchie


-----Original Message-----
From: Phil Pennock [mailto:[email protected]] 
Sent: 11 February 2014 17:07
To: Ritchie P. Fraser; [email protected]
Subject: Re: [exim] Is there any way to get exim to display the exapnded list 
returned from a pgsql lookup? {Scanned}

On 2014-02-11 at 08:52 -0800, Phil Pennock wrote:
> On 2014-02-11 at 12:16 +0000, Ritchie P. Fraser wrote:
> > Have I done something REALLY stupid like missed curly braces in the 
> > condition = statement?
> > 
> >                 I have tried the following:
> >                 condition     = ${if 
> > inlist{$sender_address_domain}{+our_sql_maildomains}{false}{true}}
> >                 condition     = ${if 
> > !inlist{$sender_address_domain}{+our_sql_maildomains}{true}{false}}
> >                 condition     = ${if 
> > !inlist{$sender_address_domain}{+our_sql_maildomains}}
> >                 !condition     = ${if 
> > inlist{$sender_address_domain}{+our_sql_maildomains}{true}{false}}
> >                 !condition     = ${if 
> > inlist{$sender_address_domain}{+our_sql_maildomains}}
> 
> inlist{FOO}{BAR} treats BAR as a list of simple strings; it doesn't 
> take domainlists.  You want match_domain instead.
> 
>   condition = ${if 
> !match_domain{$sender_address_domain}{+our_sql_maildomains}}

Well that was rude of me, no matter how much of a hurry I was/am in.

No, that was not a stupid mistake -- this is a confusing area, with multiple 
related functions; inlist/inlisti were added to provide safer alternatives 
where the second parameter needs to be expanded but only a simple list was 
wanted (which is normal, when expanding a variable to provide the target list).

We could almost certainly use better documentation here; I'm far too close to 
the problem domain and tend to miss when the docs I write have subtleties that 
are not immediately obvious to someone not also familiar with the issues.

So this *is* a bug, it's a documentation bug, and suggestions for improved 
text, cross-referencing, etc are very welcome.

Regards,
-Phil

--
This message has been scanned for viruses and dangerous content by MailScanner, 
and is believed to be clean.


-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to