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