Doc: clarify the syntax of the "begin <section>"
[exim.git] / test / confs / 0001
1 # Exim test configuration 0001
2
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.
6
7 exim_path = EXIM_PATH
8 host_lookup_order = bydns
9 spool_directory = DIR/spool
10 log_file_path = DIR/spool/log/%slog
11 gecos_pattern = ""
12 gecos_name = CALLER_NAME
13
14
15 no_accept_8bitmime
16 acl_not_smtp = check_local_message
17 acl_smtp_auth = check_auth
18 acl_smtp_connect = check_connect
19 acl_smtp_data = check_message
20 acl_smtp_etrn = check_etrn
21 acl_smtp_expn = check_expn
22 acl_smtp_helo = check_helo
23 acl_smtp_mail = check_mail
24 acl_smtp_mailauth = check_mailauth
25 acl_smtp_quit = check_quit
26 acl_smtp_predata = check_predata
27 acl_smtp_rcpt = check_recipient
28 acl_smtp_vrfy = check_vrfy
29 admin_groups = 1234
30 allow_mx_to_ip
31 allow_utf8_domains
32 auth_advertise_hosts = a.a.h
33 auto_thaw = 1d
34 bi_command =
35 bounce_message_file =
36 bounce_message_text =
37 bounce_return_body = false
38 no_bounce_return_message
39 return_size_limit = 12K
40 bounce_return_size_limit = 10K
41 callout_domain_negative_expire = 1h
42 callout_domain_positive_expire = 1d
43 callout_negative_expire = 5h
44 callout_positive_expire = 1w
45 callout_random_local_part = xxx\
46 xx
47 check_log_inodes = 0
48 check_log_space = 0
49 check_spool_inodes = 0
50 check_spool_space = 0
51 daemon_smtp_port =
52 daemon_smtp_ports =
53 daemon_startup_retries = 3
54 daemon_startup_sleep = 8s
55 delay_warning = 1d
56 delay_warning_condition = ${if match{$h_precedence:}{(?i)bulk|list}{no}{yes}}
57 deliver_drop_privilege
58 deliver_queue_load_max = 6.2
59 delivery_date_remove
60 dns_again_means_nonexist = *.esri.com:jeni.com
61 dns_check_names_pattern = ^.*$
62 dns_ipv4_lookup = *
63 dns_retrans = 0s
64 dns_retry = 0
65 drop_cr
66 envelope_to_remove
67 errors_copy =
68 errors_reply_to = postmaster@cam.ac.uk
69 extra_local_interfaces = 1.2.3.4
70 no_extract_addresses_remove_arguments
71 finduser_retries = 0
72 allow_domain_literals
73 freeze_tell = postmaster
74 headers_charset = UTF-8
75 header_maxsize = 2M
76 header_line_maxsize = 2K
77 helo_accept_junk_hosts =
78 helo_allow_chars = _
79 helo_lookup_domains =
80 helo_verify_hosts = localhost
81 helo_try_verify_hosts = 1.2.3.4
82 hold_domains =
83 host_lookup = a.b.c.d
84 host_reject_connection = 10.9.8.7
85 hosts_connection_nolog = 127.0.0.1
86 hosts_treat_as_local =
87 ignore_bounce_errors_after = 2m
88 ignore_fromline_hosts = a.b.c.d
89 ignore_fromline_local
90 keep_malformed = 4d
91 no_local_from_check
92 local_from_prefix = *-
93 local_from_suffix = =*
94 local_interfaces =
95 local_scan_timeout = 10s
96 local_sender_retain
97 localhost_number = "3 "
98 log_selector = \
99 +address_rewrite \
100 -all \
101 +all_parents \
102 +arguments \
103 -connection_reject \
104 -delay_delivery \
105 +incoming_interface \
106 +incoming_port \
107 +lost_incoming_connection \
108 -queue_run \
109 +received_recipients \
110 +received_sender \
111 -retry_defer \
112 +return_path_on_delivery \
113 +sender_on_delivery \
114 +size_reject \
115 -skip_delivery \
116 +smtp_confirmation \
117 +smtp_connection \
118 +smtp_syntax_error \
119 +subject \
120 +tls_cipher \
121 +tls_peerdn
122 log_timezone
123 lookup_open_max = 16
124 max_username_length = 8
125 message_body_visible = 500
126 message_id_header_domain = a.b.c
127 message_id_header_text = x.y.z
128 no_message_logs
129 message_size_limit = 500K
130 mua_wrapper
131 never_users = root:0
132 percent_hack_domains =
133 pipelining_advertise_hosts = *.b.c
134 pid_file_path = /some/thing
135 no_preserve_message_logs
136 primary_hostname = some.host.name
137 no_print_topbitchars
138 process_log_path = /a/b/c/d
139 prod_requires_admin
140 qualify_domain = some.dom.ain
141 qualify_recipient = some.dom.ain
142 queue_domains = a.b.c
143 queue_list_requires_admin
144 no_queue_only
145 no_queue_only_override
146 queue_only_file = /var/spool/exim/queue_only
147 queue_only_load = 8.2
148 no_queue_run_in_order
149 queue_run_max = 5
150 queue_smtp_domains = x.y.z
151 receive_timeout = 0s
152 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}}
153 received_headers_max = 30
154 recipient_unqualified_hosts = localhost:some.host.name
155 recipients_max = 0
156 no_recipients_max_reject
157 remote_max_parallel = 1
158 remote_sort_domains =
159 retry_data_expire = 24h
160 retry_interval_max = 3d
161 return_path_remove
162 rfc1413_hosts =
163 sender_unqualified_hosts = localhost:some.host.name
164 smtp_accept_keepalive
165 smtp_accept_max = 20
166 smtp_accept_max_nonmail = 40
167 smtp_accept_max_nonmail_hosts = ! *.b.c
168 smtp_accept_max_per_connection = 20
169 smtp_accept_max_per_host = 4
170 smtp_accept_queue = 0
171 smtp_accept_queue_per_connection = 10
172 smtp_active_hostname = x.y.z
173 no_smtp_enforce_sync
174 smtp_max_synprot_errors = 11
175 smtp_max_unknown_commands = 10
176 smtp_ratelimit_hosts = *
177 smtp_ratelimit_mail = 1, 1s, 2, 10s
178 smtp_ratelimit_rcpt = 10, 2s, 5, 5m
179 smtp_accept_reserve = 0
180 smtp_banner = ${primary_hostname} ESMTP Exim ${version_number} #${compile_number} ${tod_full}
181 smtp_check_spool_space
182 smtp_connect_backlog = 5
183 smtp_etrn_command =
184 smtp_etrn_serialize
185 smtp_load_reserve = 2
186 smtp_receive_timeout = 1m
187 smtp_reserve_hosts =
188 smtp_return_error_details
189 no_split_spool_directory
190 no_strip_excess_angle_brackets
191 no_strip_trailing_dot
192 no_syslog_duplication
193 syslog_facility = uucp
194 syslog_processname = mta-exim
195 no_syslog_timestamp
196 system_filter = /home/exim/test/filter
197 system_filter_directory_transport =
198 system_filter_file_transport =
199 system_filter_group = mail
200 system_filter_pipe_transport =
201 system_filter_reply_transport =
202 system_filter_user = 99
203 tcp_nodelay = false
204 timeout_frozen_after = 7d
205 timezone = EDT
206 trusted_groups = 42
207 trusted_users = ${readfile{DIR/aux-fixed/TESTNUM.trusted}{:}}
208 unknown_login = unknownlogin
209 unknown_username = Exim Testing
210 untrusted_set_sender = *
211 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?
212 uucp_from_sender = $1
213 warn_message_file = /home/exim/test/warnmsg_file
214 write_rejectlog = false
215
216
217 # ----- Routers -----
218
219 begin routers
220
221 # The manualroute router
222
223 manualroute:
224 driver = manualroute
225 address_data = domainlist address data
226 cannot_route_message = can't route this address
227 caseful_local_part
228 condition =
229 debug_print =
230 disable_logging
231 domains =
232 errors_to =
233 no_fail_verify_recipient
234 no_fail_verify_sender
235 fallback_hosts = localhost
236 group = mail
237 headers_add =
238 headers_remove =
239 host_find_failed = freeze
240 hosts_randomize
241 no_initgroups
242 local_parts =
243 more
244 no_pass_on_timeout
245 pass_router = manualroute2
246 redirect_router = manualroute2
247 require_files =
248 route_data = ${lookup{$local_part}lsearch{/}}
249 router_home_directory = /usr
250 self = freeze
251 senders =
252 transport = smtp
253 no_unseen
254 user = root
255 no_verify_only
256 verify_recipient
257 verify_sender
258
259 # Manualroute2 router, for mutually exclusive options
260
261 manualroute2:
262 driver = manualroute
263 domains = ! +local_domains
264 route_list = ^fax(\.cl(\.cam(\.ac\.uk)?)?)?$ cl.cam.ac.uk; \
265 *.uucp britain.eu.net
266
267 # The redirect router, in "alias" mode
268
269 alias:
270 driver = redirect
271 address_data = aliasfile address data
272 allow_fail
273 allow_freeze
274 caseful_local_part
275 no_check_ancestor
276 condition =
277 data = ${lookup{$local_part}lsearch{/etc/aliases}}
278 debug_print =
279 directory_transport = dummy
280 domains =
281 errors_to =
282 expn
283 no_fail_verify_recipient
284 no_fail_verify_sender
285 fallback_hosts =
286 file_transport = dummy
287 forbid_blackhole
288 no_forbid_file
289 forbid_include
290 no_forbid_pipe
291 group = 100
292 headers_add =
293 headers_remove =
294 hide_child_in_errmsg
295 include_directory = /i/n/c
296 no_initgroups
297 local_part_prefix =
298 no_local_part_prefix_optional
299 local_part_suffix =
300 no_local_part_suffix_optional
301 local_parts =
302 more
303 no_one_time
304 pipe_transport = dummy
305 no_qualify_preserve_domain
306 no_repeat_use
307 qualify_domain = xxxx
308 redirect_router = aliasfile2
309 require_files =
310 retry_use_local_part
311 no_rewrite
312 senders =
313 sieve_vacation_directory = /thing/thong
314 sieve_subaddress = rhubarb
315 sieve_useraddress = custard
316 no_skip_syntax_errors
317 syntax_errors_to =
318 transport_current_directory =
319 transport_home_directory =
320 no_unseen
321 user = 100
322 no_verify_only
323 verify_recipient
324 verify_sender
325
326 # Aliasfile2 for mutually exclusive options
327
328 aliasfile2:
329 driver = redirect
330 allow_defer
331 caseful_local_part
332 check_group
333 check_owner
334 file = /some/file
335 retry_use_local_part
336
337 # The redirect router in "forward" mode
338
339 forward:
340 driver = redirect
341 allow_filter
342 forbid_exim_filter
343 forbid_sieve_filter
344 caseful_local_part
345 check_ancestor
346 check_local_user
347 condition =
348 debug_print =
349 directory_transport = dummy
350 domains =
351 errors_to =
352 expn
353 no_fail_verify_recipient
354 no_fail_verify_sender
355 fallback_hosts =
356 file = //.forward2
357 file_transport = dummy
358 no_forbid_file
359 forbid_blackhole
360 forbid_filter_existstest
361 no_forbid_filter_logwrite
362 forbid_filter_dlfunc
363 forbid_filter_lookup
364 forbid_filter_readfile
365 forbid_filter_readsocket
366 forbid_filter_reply
367 forbid_filter_run
368 no_forbid_include
369 no_forbid_pipe
370 group = mail
371 headers_add =
372 headers_remove =
373 hide_child_in_errmsg
374 no_ignore_eacces
375 no_ignore_enotdir
376 no_initgroups
377 local_part_prefix = xxx-
378 local_part_prefix_optional
379 local_part_suffix =
380 no_local_part_suffix_optional
381 local_parts =
382 modemask = 022
383 more
384 no_one_time
385 owners = root
386 owngroups = mail
387 pipe_transport = dummy
388 no_qualify_preserve_domain
389 redirect_router = aliasfile2
390 reply_transport = dummy
391 require_files =
392 rewrite
393 senders =
394 no_skip_syntax_errors
395 syntax_errors_text = rhubarb
396 syntax_errors_to =
397 transport_current_directory =
398 transport_home_directory =
399 no_unseen
400 user = root
401 no_verify_only
402 no_verify_recipient
403 no_verify_sender
404
405 # The accept router
406
407 localuser:
408 driver = accept
409 no_address_test
410 caseful_local_part
411 check_local_user
412 condition =
413 debug_print =
414 domains =
415 errors_to =
416 expn
417 no_fail_verify_recipient
418 no_fail_verify_sender
419 fallback_hosts =
420 group = mail
421 headers_add = X-added: by localuser
422 headers_remove =
423 no_initgroups
424 local_part_prefix =
425 no_local_part_prefix_optional
426 local_part_suffix =
427 no_local_part_suffix_optional
428 local_parts =
429 no_log_as_local
430 more
431 redirect_router = smartuser
432 require_files =
433 senders =
434 transport = ${if eq{$local_part}{caller}{local_mbx_delivery}{local_delivery}}
435 transport_current_directory =
436 transport_home_directory =
437 no_unseen
438 user = 99
439 no_verify_only
440 verify_recipient
441 verify_sender
442
443 # The redirect router in "smartuser" mode
444
445 smartuser:
446 driver = redirect
447 caseful_local_part
448 condition =
449 data = user@domain
450 debug_print =
451 domains =
452 errors_to =
453 expn
454 no_fail_verify_recipient
455 no_fail_verify_sender
456 fallback_hosts =
457 file_transport = dummy
458 forbid_file
459 forbid_pipe
460 group = mail
461 headers_add =
462 headers_remove =
463 hide_child_in_errmsg
464 no_initgroups
465 local_part_prefix =
466 no_local_part_prefix_optional
467 local_part_suffix =
468 no_local_part_suffix_optional
469 local_parts = abcd
470 log_as_local
471 more
472 pipe_transport = dummy
473 qualify_preserve_domain
474 redirect_router = localuser
475 require_files =
476 retry_use_local_part
477 no_rewrite
478 senders =
479 no_unseen
480 user = root
481 no_verify_only
482 verify_recipient
483 verify_sender
484
485
486 # ----- Transports -----
487
488 # Dummy transport, to refer back to
489
490 begin transports
491
492 dummy:
493 driver = pipe
494 disable_logging
495
496 # Appendfile Transport
497
498 appendfile:
499 driver = appendfile
500 allow_fifo
501 no_allow_symlink
502 batch_max = 100
503 batch_id = rhubarb
504 body_only
505 no_check_group
506 no_check_owner
507 check_string = abcd
508 create_directory
509 create_file = anywhere
510 current_directory =
511 debug_print =
512 delivery_date_add
513 directory_mode = 0700
514 envelope_to_add
515 escape_string = xyz
516 file = /home/$local_part/inbox
517 file_format = "From : appendfile"
518 no_file_must_exist
519 group = mail
520 headers_add = X-original-domain: $original_domain\nX-original-localp: $original_local_part
521 headers_remove =
522 headers_rewrite = a@b c@d
523 lock_fcntl_timeout = 10s
524 lock_interval = 3s
525 lock_retries = 10
526 lockfile_mode = 0600
527 lockfile_timeout = 30m
528 mailbox_size = 1000
529 mailbox_filecount = 9999
530 message_size_limit = 1M
531 mode = 0600
532 mode_fail_narrower
533 no_notify_comsat
534 message_prefix = From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
535 quota =
536 no_quota_is_inclusive
537 quota_size_regex = (\d+)$
538 quota_warn_message = "A warning message"
539 quota_warn_threshold =
540 rcpt_include_affixes
541 retry_use_local_part
542 return_path = xxxx
543 return_path_add
544 shadow_condition = $h_return-receipt-to
545 shadow_transport = dummy
546 message_suffix = \n
547 transport_filter =
548 transport_filter_timeout = 10s
549 no_use_crlf
550 use_fcntl_lock
551 use_lockfile
552 user = root
553
554 # For options that are mutually exclusive with those above
555
556 appendfile2:
557 driver = appendfile
558 directory = /etc
559 directory_file = afilename
560 quota_directory = /some/directory
561 quota = 1M
562 quota_filecount = 10
563 use_bsmtp
564
565 # Ditto
566
567 appendfile4:
568 driver = appendfile
569 directory = /etc
570
571 # Smtp transport
572
573 smtp:
574 driver = smtp
575 authenticated_sender = abcde
576 authenticated_sender_force = true
577 no_allow_localhost
578 command_timeout = 5m
579 connect_timeout = 0s
580 connection_max_messages = 0
581 data_timeout = 5m
582 debug_print =
583 delay_after_cutoff
584 no_delivery_date_add
585 dns_qualify_single
586 no_dns_search_parents
587 no_envelope_to_add
588 fallback_hosts = localhost
589 final_timeout = 10m
590 no_gethostbyname
591 headers_add =
592 headers_remove =
593 helo_data = some.text
594 hosts = localhost
595 hosts_avoid_esmtp = x.y.z
596 hosts_max_try = 10
597 hosts_max_try_hardlimit = 20
598 hosts_override
599 hosts_randomize
600 hosts_require_auth = *
601 hosts_try_auth = *
602 interface = 127.0.0.1
603 max_rcpt = 0
604 multi_domain
605 port = 25
606 retry_include_ip_address
607 no_return_path_add
608 serialize_hosts =
609 size_addition = -1
610 transport_filter =
611
612 # End