exim: Add initial configuration.
[matthijs/servers/drsnuggles.git] / etc / exim4 / conf.d / router / 200_exim4-config_primary
1
2 ### router/200_exim4-config_primary
3 #################################
4 # This file holds the primary router, responsible for nonlocal mails
5
6 .ifdef DCconfig_internet
7 # configtype=internet
8 #
9 # deliver mail to the recipient if recipient domain is a domain we
10 # relay for. We do not ignore any target hosts here since delivering to
11 # a site local or even a link local address might be wanted here, and if
12 # such an address has found its way into the MX record of such a domain,
13 # the local admin is probably in a place where that broken MX record
14 # could be fixed.
15
16 dnslookup_relay_to_domains:
17   debug_print = "R: dnslookup_relay_to_domains for $local_part@$domain"
18   driver = dnslookup
19   domains = ! +local_domains : +relay_to_domains
20   transport = remote_smtp
21   same_domain_copy_routing = yes
22   no_more
23
24 # deliver mail directly to the recipient. This router is only reached
25 # for domains that we do not relay for. Since we most probably can't
26 # have broken MX records pointing to site local or link local IP
27 # addresses fixed, we ignore target hosts pointing to these addresses.
28
29 dnslookup:
30   debug_print = "R: dnslookup for $local_part@$domain"
31   driver = dnslookup
32   domains = ! +local_domains
33   transport = remote_smtp
34   same_domain_copy_routing = yes
35   # ignore private rfc1918 and APIPA addresses
36   ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\
37                         172.16.0.0/12 : 10.0.0.0/8 : 169.254.0.0/16 :\
38                         255.255.255.255
39   no_more
40
41 .endif
42
43
44 .ifdef DCconfig_local
45 # configtype=local
46 #
47 # Stand-alone system, so generate an error for mail to a non-local domain
48 nonlocal:
49   debug_print = "R: nonlocal for $local_part@$domain"
50   driver = redirect
51   domains = ! +local_domains
52   allow_fail
53   data = :fail: Mailing to remote domains not supported
54   no_more
55
56 .endif
57
58
59 .ifdef DCconfig_smarthost DCconfig_satellite
60 # configtype=smarthost or configtype=satellite
61 #
62 # Send all non-local mail to a single other machine (smarthost).
63 #
64 # This means _ALL_ non-local mail goes to the smarthost. This will most
65 # probably not do what you want for domains that are listed in
66 # relay_domains. The most typical use for relay_domains is to control
67 # relaying for incoming e-mail on secondary MX hosts. In that case,
68 # it doesn't make sense to send the mail to the smarthost since the
69 # smarthost will probably send the message right back here, causing a
70 # loop.
71 #
72 # If you want to use a smarthost while being secondary MX for some
73 # domains, you'll need to copy the dnslookup_relay_to_domains router
74 # here so that mail to relay_domains is handled separately.
75
76 smarthost:
77   debug_print = "R: smarthost for $local_part@$domain"
78   driver = manualroute
79   domains = ! +local_domains
80   transport = remote_smtp_smarthost
81   route_list = * DCsmarthost byname
82   host_find_failed = defer
83   same_domain_copy_routing = yes
84   no_more
85
86 .endif
87
88
89 # The "no_more" above means that all later routers are for
90 # domains in the local_domains list, i.e. just like Exim 3 directors.