exim router condition
Hallo zusammen,
ich habe folgende condition in einem router:
condition = ${if or{ \
{ <={300}{${lookup pgsql{select \
spam_reject('${quote_pgsql:$local_part}','${quote_pgsql:$domain}') * 10 \
} \
{$value}fail} \
} \
} \
{ \
${lookup pgsql{select \
check_spam from accounts WHERE
email = '${quote_pgsql:$local_part}@${quote_pgsql:$domain}' \
} \
{$value}fail} \
} \
} \
}
Diese tut leider nicht das was sie soll. :-(
Das erste lookup liefert den Wert 100 zurück. Die condition sollte also
false sein.
Das zweite lookup liefert den booblean Wert eines DB-Feldes zurück. Ist
also true oder false.
Da der 2. term bei allen zur Zeit immer true ergibt sollte die ganze
condition also false sein und der router nicht ausgeführt werden.
Bei mir kommt bei einem Test:
exim4 -d -bv info@testmail.de
folgende Ausgabe:
LOG: MAIN PANIC
failed to expand condition "${if or{ { <={300}{${lookup pgsql{select
spam_reject('${quote_pgsql:$local_part}','${quote_pgsql:$domain}') }
{$value}fail} } } { {${lookup pgsql{select check_spam from accounts
WHERE email = '${quote_pgsql:$local_part}@${quote_pgsql:$domain}' }
{$value}fail}} } } }" for forward_domains router: condition name
expected, but found "{${lookup pgsql{" inside "or{...}" condition
Kann jemand damit etwas anfangen? Denn innerhalb von OR{} sollte ja ein
lookup möglich sein.
Oder wie prüfe ich an dieser Stelle den zurück gegebenen boolean Wert
der Abfrage?
Ich suche und teste schon ewig. Eventuell hat jemand von Euch ja einen
Tipp für mich.
Bin für jeden Hinweis sehr dankbar.
lg maik
Reply to: