On Thu, 19 Aug 2010 10:12:29 +0200, Marcin Mirosław <[email protected]>
wrote:
> W dniu 19.08.2010 09:06, Jonas Forsberg pisze:
>>
>>
>> Hello.
>> I am fairly new to exim4, so please be patient with me.
>>
>> I'm
>> trying to get a condition for a router to work as I expect, but I
>> clearly have issues understanding the syntax.
>>
>> The condition consists of
>> two parts:
>>
>> 1st a check in the Subject field after a string, that I have
>> got to work.
>>
>> condition = ${lookup mysql{
>>  SELECT email FROM users
>>
>> WHERE email='${quote_mysql:$local_pa...@${quote_mysql:$domain}'}
>>
>> {true}{false}}
>>
>> 2nd a check in a MySQL table, which I have been
>> working.
>>
>> condition = ${if match
>> {$h_subject:}{N^KalleKalas$N}{yes}{no}}
>>
>> but to combine those two into a
>> "and rule" makes my head spin. What ever I do exim4 logs that it can not
>> expand the condition.
> 
> Hello!
> If you want to join this two condition with logical "and", it would be
> looks in this way:
> 
> condition = ${if and{
> {lookup mysql{SELECT 1 FROM users WHERE
> email='${quote_mysql:$local_pa...@${quote_mysql:$domain}'}}
> {if match {$h_subject:}{N^KalleKalas$N}{yes}{no}}}
> }
> 
> I can't test it, i'm not sure about sql query (mayby it shoud be write
> in such way: {eq {1}{SELECT 1 FROM users WHERE
> email='${quote_mysql:$local_pa...@${quote_mysql:$domain}'}
> )
> 
> Regards,
> Marcin
> 
> -- 
> xmpp (jabber): marcin  [at]  mejor.pl

Thanks for trying to help out.

Let me try to break down things a bit.

This works as I said before:


condition = ${if match {$h_subject:}{\N^kallekalas$\N}{yes}{no}}

if I replace that with a very stupid rule
condition = ${if and{ \
                     {eq \
                        {1} \
                        {1} \
                     } \
                     {eq \
                        {1} \
                        {1} \
                     } \
                   } \
                   {yes}{no} \
             }


it works like a charm. Changing one of the 1 to a 0 will not trigger
the condition.
I've broken down the "and" into several lines just to make it more
visible for me...

When I try to replace the first eq condition with my subject match like
this
condition = ${if and{ \
                     {match \
                        {$h_subject:} \
                        {\N^kallekalas$\N} \
                        {yes}{no} \
                     } \
                     {eq \
                        {1} \
                        {1} \
                     } \
                   } \
                   {yes}{no} \
             }

and it looks ok to me, but I get this in the mainlog
* 1Om1IO-0005ro-Bs failed to expand condition "${if and{ {match
{$h_subject:} {\N^kallekalas$\N} {yes}{no} } {eq {1} {1} } } {yes}{no}
}" for vmail_init router: missing } at end of condition inside "and"
group

I just can't understand why....

Cheers
Jonas

-- 
## List details at http://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