On 10/28/2009 6:55 AM, Harakiri wrote:
Hi,

my current setup is using check_recipient_access with a SQL table. This works 
fine since i can negate the query to return REJECT when a user is not found, if 
the user is found, the query returns DUNNO to proceed with addtional checks 
(greylisting, rbl), im doing this with a simple sql union.

Now, i do also have a setup where i cant use a SQL table but an existing LDAP 
directory. I tried using check_recipient_access with an ldap table.
The problem is, how do i tell that the query should return REJECT if the user 
isnt found? The result_format allows only to define a value when a match is 
found, but there isnt a no_result_format option.

I know i could do the opposite way, returning PERMIT if the user is found in 
the LDAP query, and add , REJECT after the recipient check i.e.

check_recipient_access ldap:/ldap.cf, REJECT

however, then i couldnt do any additional checks like
check_policy_service and rbl, because PERMIT returns and does not proceed with 
checks.

The only solution would be to do the check_recipient_access as the final check, 
but that would be a quite useless configuration to do greylisting, rbls etc 
before a recipient check.

Any ideas?




The proper solution is to use postfix's built-in recipient validation. Valid recipients should be listed in the proper table for the address class of the recipient domain, then you can reject all unknown recipients with a simple "reject_unlisted_recipient" at whatever point you want. See
http://www.postfix.org/ADDRESS_CLASS_README.html

  -- Noel Jones

Reply via email to