[exim] Force authenticated local mail to use DNS

Top Page
Delete this message
Reply to this message
Author: mtrainer
Date:  
To: Exim
Subject: [exim] Force authenticated local mail to use DNS


Hi,

Emails from our authenticated senders try to deliver locally if the
domain is in our ldap directory even if the DNS MX record for the domain
points externally. Is it possible in exim to make authenticated emails
use the DNS MX instead of just delivering internally if the domain is in
our ldap directory. This of course can't break normal incoming emails.
The contents of our routers.conf file is below. Some advice on how to
solve this problem would be greatly appreciated.

Thanks

Murray

# Check for non-local forwarding entries in LDAP (uses objectClass:
mailAlias)
ldap_nonlocalforward:
driver = redirect
domains = +local_domains
data = ${lookup ldap {user=LDAPUSER pass=LDAPPASS
LDAPS/domainName=${domain},LDAPBASE?mailForwardingAddress?sub?(&(objectClass=mailAlias)(mail=${local_part}))}
{$value} fail }

# Check for forwarding entries in LDAP (objectClass: mailUser)
ldap_forward:
driver = redirect
domains = +local_domains
data = ${lookup ldap {user=LDAPUSER pass=LDAPPASS
LDAPS/domainName=${domain},LDAPBASE?mailForwardingAddress?sub?(&(objectClass=mailUser)(mail=${local_part}@${domain}))}
{$value} fail }
unseen

# Gnarwl autoresponder
autorespond:
driver = accept
domains = +local_domains
transport = gnarwl_pipe
unseen

# Check for users in LDAP (only users with local mailboxes)
ldapuser:
driver = manualroute
domains = +local_domains
condition = ${if eq {}{${lookup ldap {user=LDAPUSER pass=LDAPPASS
LDAPS/domainName=${domain},LDAPBASE?mail?sub?(&(objectClass=mailUser)(mail=${local_part}@${domain}))}}}{no}{yes}}
route_list = "*
mailproxy01.au.syrahost.com:mailproxy02.au.syrahost.com:mailproxy03.au.syrahost.com
randomize byname"
transport = dovecot_lmtp

# Check for aliases in LDAP
ldapalias:
driver = redirect
domains = +local_domains
data = ${lookup ldap {user=LDAPUSER pass=LDAPPASS
LDAPS/domainName=${domain},LDAPBASE?mail?sub?(&(objectClass=mailUser)(shadowAddress=${local_part}@${domain}))}
{$value} fail }

# Check the LDAP for existing catchall for this domain.
ldap_catchall:
driver = redirect
domains = +local_domains
data = ${lookup ldap {user=LDAPUSER pass=LDAPPASS
LDAPS/domainName=${domain},LDAPBASE?mailForwardingAddress?sub?(&(objectClass=mailUser)(mail=CATCHALL@${domain}))}
{$value} fail }