[exim] one more condition

Pàgina inicial
Delete this message
Reply to this message
Autor: Chris Knipe
Data:  
A: exim-users
Assumpte: [exim] one more condition
Hi,

Just one more quicky that's giving me grief. From the debug, it seems the
if eq refuses to match, and therefore doesn't return anything....

Debug:
>>> processing "deny"
>>> check condition = ${if eq {${lookup mysql{SELECT LocalPart FROM 
>>> Exim_Recipient_Map LEFT JOIN Exim_DomainList ON 
>>> Exim_Recipient_Map.DomainID=Exim_DomainList.EntryID LEFT JOIN 
>>> Exim_ACLList ON Exim_Recipient_Map.DomainID=Exim_ACLList.DomainID WHERE 
>>> Exim_DomainList.isActive='y' AND Exim_ACLList.reqReciptVerify='y' AND 
>>> Exim_Recipient_Map.LocalPart='${quote_mysql:$local_part}' AND 
>>> Exim_DomainList.DomainName='${quote_mysql:$domain}' LIMIT 
>>> 1}}}{${local_part} {yes}{no}}
>>>                 =
>>> deny: condition test failed


Config:
  # MySQL Condition: Recipient Address Verification
  deny    condition     = ${if eq {${lookup mysql{SELECT LocalPart FROM 
Exim_Recipient_Map LEFT JOIN Exim_DomainList ON 
Exim_Recipient_Map.DomainID=Exim_DomainList.EntryID LEFT JOIN Exim_ACLList 
ON Exim_Recipient_Map.DomainID=Exim_ACLList.DomainID WHERE 
Exim_DomainList.isActive='y' AND Exim_ACLList.reqReciptVerify='y' AND 
Exim_Recipient_Map.LocalPart='${quote_mysql:$local_part}' AND 
Exim_DomainList.DomainName='${quote_mysql:$domain}' LIMIT 1}}}{${local_part} 
{yes}{no}}
          message       = Cannot verify ${local_part}@${domain}


The query itself works, and returns correct data as expected....

Basic idea... Verify recipient address from a mysql database.... It's
supposed to be for recipient address maps on domains I intend to *relay*
mail for (and therefore, I believe I cannot use verify = recipient)... If
the recipient exist, the SQL returns the address of the user. If the user
does not exist, a empty string is returned. Hence, I'm trying to match the
result from the SQL, to the address given for rcpt to:

The basic idea here is to stop a lot of frozen messages because I accept the
message for relaying, but the server I relay to, refuses to accept because
the recipient is invalid.


Thanks as always,
Chris