summaryrefslogtreecommitdiff
path: root/conf.d/030_routers.conf
diff options
context:
space:
mode:
Diffstat (limited to 'conf.d/030_routers.conf')
-rw-r--r--conf.d/030_routers.conf153
1 files changed, 153 insertions, 0 deletions
diff --git a/conf.d/030_routers.conf b/conf.d/030_routers.conf
new file mode 100644
index 0000000..28a7dd2
--- /dev/null
+++ b/conf.d/030_routers.conf
@@ -0,0 +1,153 @@
1######################################################################
2# ROUTERS CONFIGURATION #
3# Specifies how addresses are handled #
4######################################################################
5# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
6# An address is passed to each router in turn until it is accepted. #
7######################################################################
8
9begin routers
10
11# This router routes to remote hosts over SMTP by explicit IP address,
12# when an email address is given in "domain literal" form, for example,
13# <user@[192.168.35.64]>. The RFCs require this facility. However, it is
14# little-known these days, and has been exploited by evil people seeking
15# to abuse SMTP relays. Consequently it is commented out in the default
16# configuration. If you uncomment this router, you also need to uncomment
17# allow_domain_literals above, so that Exim can recognize the syntax of
18# domain literal addresses.
19
20# domain_literal:
21# driver = ipliteral
22# domains = ! +local_domains
23# transport = remote_smtp
24
25
26# This router routes addresses that are not in local domains by doing a DNS
27# lookup on the domain name. The exclamation mark that appears in "domains = !
28# +local_domains" is a negating operator, that is, it can be read as "not". The
29# recipient's domain must not be one of those defined by "domainlist
30# local_domains" above for this router to be used.
31#
32# If the router is used, any domain that resolves to 0.0.0.0 or to a loopback
33# interface address (127.0.0.0/8) is treated as if it had no DNS entry. Note
34# that 0.0.0.0 is the same as 0.0.0.0/32, which is commonly treated as the
35# local host inside the network stack. It is not 0.0.0.0/0, the default route.
36# If the DNS lookup fails, no further routers are tried because of the no_more
37# setting, and consequently the address is unrouteable.
38
39dnslookup:
40 driver = dnslookup
41 domains = ! +local_domains
42 transport = remote_smtp
43 ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
44# if ipv6-enabled then instead use:
45# ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
46 no_more
47
48
49# This alternative router can be used when you want to send all mail to a
50# server which handles DNS lookups for you; an ISP will typically run such
51# a server for their customers. If you uncomment "smarthost" then you
52# should comment out "dnslookup" above. Setting a real hostname in route_data
53# wouldn't hurt either.
54
55# smarthost:
56# driver = manualroute
57# domains = ! +local_domains
58# transport = remote_smtp
59# route_data = MAIL.HOSTNAME.FOR.CENTRAL.SERVER.EXAMPLE
60# ignore_target_hosts = <; 0.0.0.0 ; 127.0.0.0/8 ; ::1
61# no_more
62
63
64# The remaining routers handle addresses in the local domain(s), that is those
65# domains that are defined by "domainlist local_domains" above.
66
67
68# This router handles aliasing using a linearly searched alias file with the
69# name /etc/mail/aliases. When this configuration is installed automatically,
70# the name gets inserted into this file from whatever is set in Exim's
71# build-time configuration. The default path is the traditional /etc/aliases.
72# If you install this configuration by hand, you need to specify the correct
73# path in the "data" setting below.
74#
75##### NB You must ensure that the alias file exists. It used to be the case
76##### NB that every Unix had that file, because it was the Sendmail default.
77##### NB These days, there are systems that don't have it. Your aliases
78##### NB file should at least contain an alias for "postmaster".
79#
80# If any of your aliases expand to pipes or files, you will need to set
81# up a user and a group for these deliveries to run under. You can do
82# this by uncommenting the "user" option below (changing the user name
83# as appropriate) and adding a "group" option if necessary. Alternatively, you
84# can specify "user" on the transports that are used. Note that the transports
85# listed below are the same as are used for .forward files; you might want
86# to set up different ones for pipe and file deliveries from aliases.
87
88system_aliases:
89 driver = redirect
90 allow_fail
91 allow_defer
92 data = ${lookup{$local_part}lsearch{/etc/mail/aliases}}
93# user = exim
94 file_transport = address_file
95 pipe_transport = address_pipe
96
97
98# This router handles forwarding using traditional .forward files in users'
99# home directories. If you want it also to allow mail filtering when a forward
100# file starts with the string "# Exim filter" or "# Sieve filter", uncomment
101# the "allow_filter" option.
102
103# The no_verify setting means that this router is skipped when Exim is
104# verifying addresses. Similarly, no_expn means that this router is skipped if
105# Exim is processing an EXPN command.
106
107# If you want this router to treat local parts with suffixes introduced by "-"
108# or "+" characters as if the suffixes did not exist, uncomment the two local_
109# part_suffix options. Then, for example, xxxx-foo@your.domain will be treated
110# in the same way as xxxx@your.domain by this router. Because this router is
111# not used for verification, if you choose to uncomment those options, then you
112# will *need* to make the same change to the localuser router. (There are
113# other approaches, if this is undesirable, but they add complexity).
114
115# The check_ancestor option means that if the forward file generates an
116# address that is an ancestor of the current one, the current one gets
117# passed on instead. This covers the case where A is aliased to B and B
118# has a .forward file pointing to A.
119
120# The three transports specified at the end are those that are used when
121# forwarding generates a direct delivery to a file, or to a pipe, or sets
122# up an auto-reply, respectively.
123
124userforward:
125 driver = redirect
126 check_local_user
127# local_part_suffix = +* : -*
128# local_part_suffix_optional
129 file = $home/.forward
130# allow_filter
131 no_verify
132 no_expn
133 check_ancestor
134 file_transport = address_file
135 pipe_transport = address_pipe
136 reply_transport = address_reply
137
138
139# This router matches local user mailboxes. If the router fails, the error
140# message is "Unknown user".
141
142# If you want this router to treat local parts with suffixes introduced by "-"
143# or "+" characters as if the suffixes did not exist, uncomment the two local_
144# part_suffix options. Then, for example, xxxx-foo@your.domain will be treated
145# in the same way as xxxx@your.domain by this router.
146
147localuser:
148 driver = accept
149 check_local_user
150# local_part_suffix = +* : -*
151# local_part_suffix_optional
152 transport = local_delivery
153 cannot_route_message = Unknown user