I'm reworking our exim config and was trying to eliminate/optimize  
some lookups and wanted a 2nd (or more opinion) on the tack I'm  
taking....

The basic premise is making my list of routers utilize information  
I've already picked up in the acl phase (is sender local, is recip  
local).
I'm mostly interested in making sure I'm not missing anything in my  
logic of what I'm expecting to happen.
TIA

In acl_mail_from, I'm looking up the $sender_address_domain like so:

#----------------------------------------------------------------- ACL  
MAIL FROM
##  Lookup the information on the sender address to see if it's local
#
warn
   set acl_m_sender_islocal  = false
   set acl_c_sender_dbrec    = ${lookup mysql{LOOKUP_SENDER_DOMAIN} 
{$value}{}}
   set acl_m_sender_siteid   = ${extract{site_id}{$acl_c_sender_dbrec} 
{$value}{0}}
   condition                 = ${if >{$acl_m_sender_siteid}{0}}
   set acl_m_sender_islocal  = true



and in acl_rcpt_to:

#----------------------------------------------------------------- ACL  
RCPT TO
##  Lookup the information on the recipient address to see if it's local
warn
   set acl_m_rcpt_islocal = false
   set acl_c_rcpt_dbrec   = ${lookup mysql{LOOKUP_RCPT_DOMAIN}{$value} 
{}}
   set acl_m_rcpt_siteid  = ${extract{site_id}{$acl_c_rcpt_dbrec} 
{$value}{0}}
   condition              = ${if >{$acl_m_rcpt_siteid}{0}}
   set acl_m_rcpt_islocal = true


And then later on if the sender or recipient is not local, call verify  
on the address, potentially doing a callout (smarthost or not smarthost)

warn
   condition = !$acl_m_sender_islocal
   set acl_m_sender_verified = false
   verify = sender/CALLOUT_OPTS
   set acl_m_sender_verified = true


### ------------------
These are #2 and #3 in my list of routers

## This should be called when an acl calls verify = sender
non_local_sender_verify:
   driver = dnslookup
   condition = !$acl_m_sender_islocal
# domains = ! +local_domains
   verify_only
   verify_sender = true
   verify_recipient = false
   same_domain_copy_routing
   ignore_target_hosts = +special_ipv4
   mx_domains
   self = fail
   no_more


## This should be called when an acl calls verify = recipient
non_local_recipient_verify:
   driver = dnslookup
   verify_only
   verify_sender = false
   verify_recipient = true
   condition = !$acl_m_rcpt_islocal
   ignore_target_hosts = +special_ipv4
   same_domain_copy_routing
   self = fail
# domains = ! +local_domains



a bit further down the list:

.ifdef USE_SMART_HOST
## Outbound email
send_to_smart_host:
   driver = manualroute
   condition = !$acl_m_rcpt_islocal
#  domains = ! +local_domains
   route_list = * SMARTHOST
   transport = remote_smtp
   same_domain_copy_routing
   retry_use_local_part = false
   no_verify
   no_more
.endif




-- 
## 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