1 # Exim test configuration 0001
3 # This configuration sets every option that is not dependent on optional code
4 # in the binary, except for exim_user and exim_group, because setting them can
5 # mess up the creation of the spool directory etc.
9 host_lookup_order = bydns
10 spool_directory = DIR/spool
11 log_file_path = DIR/spool/log/%slog
13 gecos_name = CALLER_NAME
17 acl_not_smtp = check_local_message
18 acl_smtp_auth = check_auth
19 acl_smtp_connect = check_connect
20 acl_smtp_data = check_message
21 acl_smtp_etrn = check_etrn
22 acl_smtp_expn = check_expn
23 acl_smtp_helo = check_helo
24 acl_smtp_mail = check_mail
25 acl_smtp_mailauth = check_mailauth
26 acl_smtp_quit = check_quit
27 acl_smtp_predata = check_predata
28 acl_smtp_rcpt = check_recipient
29 acl_smtp_vrfy = check_vrfy
33 auth_advertise_hosts = a.a.h
38 bounce_return_body = false
39 no_bounce_return_message
40 return_size_limit = 12K
41 bounce_return_size_limit = 10K
42 bounce_return_linesize_limit = 997
43 callout_domain_negative_expire = 1h
44 callout_domain_positive_expire = 1d
45 callout_negative_expire = 5h
46 callout_positive_expire = 1w
47 callout_random_local_part = xxx\
51 check_spool_inodes = 0
55 daemon_startup_retries = 3
56 daemon_startup_sleep = 8s
59 delay_warning_condition = ${if match{$h_precedence:}{(?i)bulk|list}{no}{yes}}
60 deliver_drop_privilege
61 deliver_queue_load_max = 6.2
63 dns_again_means_nonexist = *.esri.com:jeni.com
64 dns_check_names_pattern = ^.*$
71 errors_reply_to = postmaster@cam.ac.uk
72 extra_local_interfaces = 1.2.3.4
73 no_extract_addresses_remove_arguments
76 freeze_tell = postmaster
77 headers_charset = UTF-8
79 header_line_maxsize = 2K
80 helo_accept_junk_hosts =
83 helo_verify_hosts = localhost
84 helo_try_verify_hosts = 1.2.3.4
87 host_reject_connection = 10.9.8.7
88 hosts_connection_nolog = 127.0.0.1
89 hosts_treat_as_local =
90 ignore_bounce_errors_after = 2m
91 ignore_fromline_hosts = a.b.c.d
95 local_from_prefix = *-
96 local_from_suffix = =*
98 local_scan_timeout = 10s
100 localhost_number = "3 "
108 +incoming_interface \
110 +lost_incoming_connection \
112 +received_recipients \
115 +return_path_on_delivery \
116 +sender_on_delivery \
127 max_username_length = 8
128 message_body_visible = 500
129 message_id_header_domain = a.b.c
130 message_id_header_text = x.y.z
132 message_size_limit = 500K
135 percent_hack_domains =
136 pipelining_advertise_hosts = *.b.c
137 pid_file_path = /some/thing
138 no_preserve_message_logs
139 primary_hostname = some.host.name
141 process_log_path = /a/b/c/d
143 qualify_domain = some.dom.ain
144 qualify_recipient = some.dom.ain
145 queue_domains = a.b.c
146 queue_list_requires_admin
148 no_queue_only_override
149 queue_only_file = /var/spool/exim/queue_only
150 queue_only_load = 8.2
151 no_queue_run_in_order
152 queue_run_max = ${if = {1}{1} {5}{10}}
153 queue_smtp_domains = x.y.z
155 received_header_text = Received: ${if def:sender_rcvhost {from ${sender_rcvhost}\n\t}{${if def:sender_ident {from ${sender_ident} }}${if def:sender_helo_name {(helo=${sender_helo_name})\n\t}}}}by ${primary_hostname} ${if def:received_protocol {with ${received_protocol}}} (Exim ${version_number} #${compile_number})\n\tid ${message_id}${if def:received_for {\n\tfor $received_for}}
156 received_headers_max = 30
157 recipient_unqualified_hosts = localhost:some.host.name
159 no_recipients_max_reject
160 remote_max_parallel = 1
161 remote_sort_domains =
162 retry_data_expire = 24h
163 retry_interval_max = 3d
166 sender_unqualified_hosts = localhost:some.host.name
167 smtp_accept_keepalive
169 smtp_accept_max_nonmail = 40
170 smtp_accept_max_nonmail_hosts = ! *.b.c
171 smtp_accept_max_per_connection = 20
172 smtp_accept_max_per_host = 4
173 smtp_accept_queue = 0
174 smtp_accept_queue_per_connection = 10
175 smtp_active_hostname = x.y.z
177 smtp_max_synprot_errors = 11
178 smtp_max_unknown_commands = 10
179 smtp_ratelimit_hosts = *
180 smtp_ratelimit_mail = 1, 1s, 2, 10s
181 smtp_ratelimit_rcpt = 10, 2s, 5, 5m
182 smtp_accept_reserve = 0
183 smtp_banner = ${primary_hostname} ESMTP Exim ${version_number} #${compile_number} ${tod_full}
184 smtp_check_spool_space
185 smtp_connect_backlog = 5
188 smtp_load_reserve = 2
189 smtp_receive_timeout = 1m
191 smtp_return_error_details
192 no_split_spool_directory
193 no_strip_excess_angle_brackets
194 no_strip_trailing_dot
195 no_syslog_duplication
196 syslog_facility = uucp
198 syslog_processname = mta-exim
200 system_filter = /home/exim/test/filter
201 system_filter_directory_transport =
202 system_filter_file_transport =
203 system_filter_group = MAILGROUP
204 system_filter_pipe_transport =
205 system_filter_reply_transport =
206 system_filter_user = 99
208 timeout_frozen_after = 7d
210 tls_advertise_hosts =
212 trusted_users = ${readfile{DIR/aux-fixed/TESTNUM.trusted}{:}}
213 unknown_login = unknownlogin
214 unknown_username = Exim Testing
215 untrusted_set_sender = *
216 uucp_from_pattern = ^From\s+(\S+)\s+(?:[a-zA-Z]{3},?\s+)?(?:[a-zA-Z]{3}\s+\d?\d|\d?\d\s+[a-zA-Z]{3}\s+\d\d(?:\d\d)?)\s+\d\d?:\d\d?
217 uucp_from_sender = $1
218 warn_message_file = /home/exim/test/warnmsg_file
219 write_rejectlog = false
222 # ----- Routers -----
226 # The manualroute router
230 address_data = domainlist address data
231 cannot_route_message = can't route this address
238 no_fail_verify_recipient
239 no_fail_verify_sender
240 fallback_hosts = localhost
244 host_find_failed = freeze
250 pass_router = manualroute2
251 redirect_router = manualroute2
253 route_data = ${lookup{$local_part}lsearch{/}}
254 router_home_directory = /usr
264 # Manualroute2 router, for mutually exclusive options
268 domains = ! +local_domains
269 route_list = ^fax(\.cl(\.cam(\.ac\.uk)?)?)?$ cl.cam.ac.uk; \
270 *.uucp britain.eu.net
272 # The redirect router, in "alias" mode
276 address_data = aliasfile address data
282 data = ${lookup{$local_part}lsearch{/etc/aliases}}
284 directory_transport = dummy
288 no_fail_verify_recipient
289 no_fail_verify_sender
291 file_transport = dummy
300 include_directory = /i/n/c
303 no_local_part_prefix_optional
305 no_local_part_suffix_optional
309 pipe_transport = dummy
310 no_qualify_preserve_domain
312 qualify_domain = xxxx
313 redirect_router = aliasfile2
318 sieve_vacation_directory = /thing/thong
319 sieve_subaddress = rhubarb
320 sieve_useraddress = custard
321 no_skip_syntax_errors
323 transport_current_directory =
324 transport_home_directory =
331 # Aliasfile2 for mutually exclusive options
342 # The redirect router in "forward" mode
354 directory_transport = dummy
358 no_fail_verify_recipient
359 no_fail_verify_sender
362 file_transport = dummy
365 forbid_filter_existstest
366 no_forbid_filter_logwrite
369 forbid_filter_readfile
370 forbid_filter_readsocket
382 local_part_prefix = xxx-
383 local_part_prefix_optional
385 no_local_part_suffix_optional
391 owngroups = MAILGROUP
392 pipe_transport = dummy
393 no_qualify_preserve_domain
394 redirect_router = aliasfile2
395 reply_transport = dummy
399 no_skip_syntax_errors
400 syntax_errors_text = rhubarb
402 transport_current_directory =
403 transport_home_directory =
422 no_fail_verify_recipient
423 no_fail_verify_sender
426 headers_add = X-added: by localuser
430 no_local_part_prefix_optional
432 no_local_part_suffix_optional
436 redirect_router = smartuser
439 transport = ${if eq{$local_part}{caller}{local_mbx_delivery}{local_delivery}}
440 transport_current_directory =
441 transport_home_directory =
448 # The redirect router in "smartuser" mode
459 no_fail_verify_recipient
460 no_fail_verify_sender
462 file_transport = dummy
471 no_local_part_prefix_optional
473 no_local_part_suffix_optional
477 pipe_transport = dummy
478 qualify_preserve_domain
479 redirect_router = localuser
491 # ----- Transports -----
493 # Dummy transport, to refer back to
501 # Appendfile Transport
514 create_file = anywhere
518 directory_mode = 0700
521 file = /home/$local_part/inbox
522 file_format = "From : appendfile"
525 headers_add = X-original-domain: $original_domain\nX-original-localp: $original_local_part
527 headers_rewrite = a@b c@d
528 lock_fcntl_timeout = 10s
532 lockfile_timeout = 30m
534 mailbox_filecount = 9999
535 message_size_limit = 1G
539 message_prefix = From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
541 no_quota_is_inclusive
542 quota_size_regex = (\d+)$
543 quota_warn_message = "A warning message"
544 quota_warn_threshold =
549 shadow_condition = $h_return-receipt-to
550 shadow_transport = dummy
553 transport_filter_timeout = 10s
559 # For options that are mutually exclusive with those above
564 directory_file = afilename
565 quota_directory = /some/directory
580 authenticated_sender = abcde
581 authenticated_sender_force = true
585 connection_max_messages = 0
591 no_dns_search_parents
593 fallback_hosts = localhost
598 helo_data = some.text
600 hosts_avoid_esmtp = x.y.z
602 hosts_max_try_hardlimit = 20
605 hosts_require_auth = *
607 interface = 127.0.0.1
611 retry_include_ip_address