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