Re: [exim] Choosing smarthost based on envelope from / sende…

Top Page
Delete this message
Reply to this message
Author: chris burgess
Date:  
To: exim-users
Subject: Re: [exim] Choosing smarthost based on envelope from / sender question
Once we set up routing for -bounce@ourdomain, it was obvious that all list
messages have a sender envelope of -bounces@ourdomain. So I've had to modify
my conditions. The router errors_via_isp below is intended to look for
Mailman traffic which originates from the list, by comparing the envelope
sender and From: headers.

If those match, then the email should be handed to the ISP mailserver. (Our
aim is to use our mailserver for handling priority mail rather than bounced
spam.)

The config below seems to work, but I'd appreciate any critique or
suggestions.

Thanks for your help so far!

############################
# domain lists

domainlist local_domains = @ : \
    @[] : \
    lists.ourdomain.com


domainlist route_via_isp = ourisp.com : isphosted.com : hotmail.com

############################
# routers

##
## route these domains to ISP directly
##
smarthost_isp:
driver = manualroute
domains = +route_via_isp
route_list = * smtp.ourisp.com bydns
transport = remote_smtp

##
## divert automatically generated mail via isp, so spam bounces don't mar
## our reputation
##
errors_via_isp:
  driver = manualroute
  senders = ^.*-request@.* : \
    ^.*-bounces@.* : \
    ^.*-bounces+.*@.* : \
    ^.*-confirm+.*@.* : \
    ^.*-join@.* : \
    ^.*-leave@.* : \
    ^.*-owner@.* : \
    ^.*-request@.* : \
    ^.*-admin@.* : \
    ^owner-.*@.*:\
    ^postmaster@.*:\
    ^webmaster@.*:\
    ^listmaster@.*:\
    ^mailer-daemon@.*:\
    ^root@.*
  condition = ${if eq {$sender_address} {$h_from:} {yes} {no}}
  route_list = * smtp.ourisp.com bydns
  transport = remote_smtp


##
## route most normal mail to our server for delivery
##
smarthost_ourdomain:
driver = manualroute
domains = ! +local_domains
route_list = * smtp.ourdomain.com bydns
transport = remote_smtp

##
## direct delivery (only if the above fail)
##
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more

#
############################