--- /dev/null
+# Basic configuration setting
+
+# Check that Exim can handle settings of all the configuration options that
+# are not dependent on optional features in the binary. This catches out error
+# in putting new options in the wrong order. Well, sometimes it does. We get
+# it to print out a sample set of configuration variables.
+
+exim -bP accept_8bitmime \
+ bounce_message_file \
+ callout_domain_negative_expire \
+ daemon_smtp_ports \
+ envelope_to_remove \
+ finduser_retries \
+ gecos_name \
+ headers_charset \
+ ignore_bounce_errors_after \
+ keep_malformed \
+ local_from_check \
+ max_username_length \
+ never_users \
+ percent_hack_domains \
+ qualify_domain \
+ receive_timeout \
+ sender_unqualified_hosts \
+ tcp_nodelay \
+ trusted_users \
+ unknown_login \
+ warn_message_file
+****
--- /dev/null
+# Common string expansions
+#
+# This is the main string expansion test that tests those expansions that will
+# be present in the basic Exim binary which we require in order to run these
+# tests at all. Specialized expansion tests also exist for optional features
+# in other test scripts.
+
+exim -be
+
+# These expansions can test variables in the configuration, but as there
+# is no message being processed, there is no message-related data. But
+# that of course gets tested in plenty of other places.
+
+# Some fixed variables
+
+exim_path: $exim_path
+primary_hostname: $primary_hostname
+primary_hostname: ${primary_hostname}
+qualify_domain: $qualify_domain
+bounce_return_size_limit: ${bounce_return_size_limit}
+spool_directory: $spool_directory
+unknown: ${unknown}
+h_subject: $h_subject:(should be empty)
+h_subject:$h_subject (should be empty)
+header in curlies: ${header_subject:} (should fail)
+
+# \$message_headers should be empty
+message_headers: >$message_headers<
+
+# Continuation
+x\
+y
+x\
+ y
+
+# Overlong names and overbig numbers
+
++$aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
++${aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}
++$11111111111111111111111111111111111
++${11111111111111111111111111111111111}
+
+# Operators
+
+addrss: ${address:local-part@dom.ain}
+addrss: ${address:Exim Person <local-part@dom.ain> (that's me)}
+domain: ${domain:local-part@dom.ain}
+domain: ${domain:Exim Person <local-part@dom.ain> (that's me)}
+escape: ${escape:B7·F2ò}
+eval: ${eval:1+1}
+eval: ${eval:1+2*3}
+eval: ${eval:(1+2)*3}
+eval: ${eval:3/2*4}
+eval: ${eval:3*4/2}
+eval: ${eval:42}
+eval: ${eval:}
+eval: ${eval:-2}
+eval: ${eval:-2 - -3}
+eval: ${eval:-2 - (-3)}
+eval: ${eval:-2 - (-3}
+eval: ${eval:-2 - -3)}
+eval: ${eval:-2 --3}
+eval: ${eval:-2 -+3}
+eval: ${eval:-2 -+-3}
+eval: ${eval:(2*(1+1))/2 + 40K}
+eval: ${eval:077}
+eval: ${eval:08}
+eval10: ${eval10:077}
+eval10: ${eval10:08}
+expand: \$primary_hostname ${expand:\$primary_hostname}
+hash: ${hash_3:monty} ${hash_5:monty} ${hash_4_62:monty python}
+hash: ${hash_3:abc}X ${hash_3:ab}X ${hash_3:a}X ${hash_3:}X
+hex2b64:${hex2b64:12345678}
+hex2b64:${hex2b64:abcdef}
+hex2b64:${hex2b64:ABCDEF}
+hex2b64:${hex2b64:1a2b3c4d5e6f}
+hex2b64:${hex2b64:1a2b3c4d5e6}
+hex2b64:${hex2b64:1a2b3c4d5e6g}
+hex2b64:${hex2b64:${md5:the quick brown fox}}
+hex2b64:${hex2b64:${sha1:the quick brown fox}}
+
+The base62 operator is actually a base36 operator in the Darwin and Cygwin
+environments. Write cunning tests that produce the same output in both cases,
+while doing a reasonable check.
+
+base62: ${if or {\
+ {eq {${base62:12345}}{0003D7}}\
+ {eq {${base62:12345}}{0009IX}}\
+ }{OK}{NOT OK}}
+base62d: ${if or {\
+ {eq {${base62d:0003D7}}{12345}}\
+ {eq {${base62d:0009IX}}{12345}}\
+ }{OK}{NOT OK}}
+base62d: ${if or {\
+ {eq {${base62d:3D7}}{12345}}\
+ {eq {${base62d:9IX}}{12345}}\
+ }{OK}{NOT OK}}
+base62 error: ${base62:12345x}
+base62d error:${base62d:0003D7.}
+
+hmac: ${hmac{md5}{somesecret}{mail.example.com 2002-10-17 11:30:59}}
+hmac: ${hmac{sha1}{somesecret}{mail.example.com 2002-10-17 11:30:59}}
+md5: ${md5:the quick brown fox jumps over the lazy dog}
+sha1: ${sha1:}
+sha1: ${sha1:abc}
+mask: ${mask:192.168.10.206/28}
+mask: ${mask:192.168.10.206/32}
+mask: ${mask:192.168.10.206/33}
+mask: ${mask:192.168.10.206/0}
+mask: ${mask:192.168.10.206}
+mask: ${mask:a.b.c.d}
+nhash: ${nhash_24:monty} ${nhash_8_63:monty python}
+lc/uc: ${lc:The Quick} ${uc: Brown Fox}
+length: ${length_10:The quick brown fox} ${l_10:abc}
+lclpt: ${local_part:local-part@dom.ain}
+lclpt: ${local_part:Exim Person <local-part@dom.ain> (that's me)}
+quote: ${quote:aZ09_.-Q} ${quote:ab*cd} ${quote:ab\cd"ef}
+quote: ${quote:nl(\n)}
+quote: ${quote:cr(\r)}
+quote: ${quote:tab(\t)}
+quote: ${quote:xff(\xff)}
+quote: Empty>${quote:}<
+quote_local_part: ${quote_local_part:abcd}
+quote_local_part: ${quote_local_part:O'Reilly}
+quote_local_part: ${quote_local_part:a space}
+quote_local_part: ${quote_local_part:.something}
+quote_local_part: ${quote_local_part:something.}
+quote_local_part: ${quote_local_part:joe.bloggs}
+quote_local_part: ${quote_local_part:a!b}
+quote_local_part: ${quote_local_part:x@y}
+quote_local_part: ${quote_local_part:ab*cd}
+quote_local_part: ${quote_local_part:x:y}
+quote_local_part: ${quote_local_part:ab\cd"ef}
+quote_local_part: ${quote_local_part:}
+rxquote:${rxquote:aZ09_,-Q} ${rxquote:ab*cd} ${rxquote:ab\cd"ef}
+substr: ${substr_3_2:rhubarb} ${s_-5_2:1234567} ${s_-5_2:12} ${s_-3_2:12}
+substr: ${s_3:rhubarb} ${s_-2:rhubarb}
+substr: ${s_1:}
+substr: ${substr_10:abc}
+str2b64:${str2b64:abcd}
+str2b64:${str2b64:The quick brown \n fox}
+strlen: ${strlen:}
+strlen: ${strlen:a}
+strlen: ${strlen:abcdefgh}
+time_interval: ${time_interval:0}
+time_interval: ${time_interval:44}
+time_interval: ${time_interval:999999}
+time_interval: ${time_interval:-1}
+time_interval: ${time_interval:rhubarb}
+
+# stat is a bit tricky, but some of the fields of the aux-var directory
+# should be the same on all systems
+
+stat: ${extract{mode}{${stat:DIR/aux-var}}}
+stat: ${extract{smode}{${stat:DIR/aux-var}}}
+stat: ${stat:/a/non/existent/file}
+
+# "Operators" that have expanded arguments
+
+hash: ${hash{3}{monty}} ${hash{5}{monty}} ${hash{4}{62}{monty python}}
+hash: ${hash{3}{abc}}X ${hash{3}{ab}}X ${hash{3}{a}}X ${hash{3}{}}X
+nhash: ${nhash{24}{monty}} ${nhash{8}{63}{monty python}}
+length: ${length{10}{The quick brown fox}} ${length{10}{abc}}
+substr: ${substr{3}{2}{rhubarb}} ${substr{-5}{2}{1234567}} ${substr{-5}{2}{12}} ${substr{-3}{2}{12}}
+substr: ${substr{${if eq{1}{1}{-8}}}{${if eq{1}{0}{25}{1}}}{abcde}}
+
+# Error forms
+
+${hash{one}}
+${hash{nonnumber}{abcd}}
+${hash{3}{2}{4}{abcd}}
+${substr{-3}{-2}{abcd}}
+
+# Skipped operators
+
+addrss: ${if eq {1}{2}{${address:invalid}}{NO}}
+domain: ${if eq {1}{2}{${domain:invalid}}{NO}}
+escape: ${if eq {1}{2}{${escape:invalid}}{NO}}
+expand: ${if eq {1}{2}{\$primary_hostname ${expand:\$invalid}}{NO}}
+hash: ${if eq {1}{2}{${hash_3:invalid}}{NO}}
+md5: ${if eq {1}{2}{${md5:invalid}}{NO}}
+mask: ${if eq {1}{2}{${mask:invalid}}{NO}}
+
+# Conditions
+
+2=2: ${if ={2}{2}{y}{n}}
+2==2: ${if =={2}{2}{y}{n}}
+3=2: ${if ={3}{2}{y}{n}}
+2==3: ${if =={2}{3}{y}{n}}
+!2=2: ${if !={2}{2}{y}{n}}
+!2==2: ${if !=={2}{2}{y}{n}}
+!3=2: ${if !={3}{2}{y}{n}}
+!2==3: ${if !=={2}{3}{y}{n}}
+2>3: ${if >{2}{3}{y}{n}}
+3>3: ${if >{3}{3}{y}{n}}
+4>3: ${if >{4}{3}{y}{n}}
+2>=3: ${if >={2}{3}{y}{n}}
+3>=3: ${if >={3}{3}{y}{n}}
+4>=3: ${if >={4}{3}{y}{n}}
+2<3: ${if <{2}{3}{y}{n}}
+3<3: ${if <{3}{3}{y}{n}}
+4<3: ${if <{4}{3}{y}{n}}
+2<=3: ${if <={2}{3}{y}{n}}
+3<=3: ${if <={3}{3}{y}{n}}
+4<=3: ${if <={4}{3}{y}{n}}
+5<=3: ${if <={ 5 } { 3 } {y}{n}}
+
+5>3k: ${if >{5 } {3k }{y}{n}}
+5>3m: ${if >{5 } {3m }{y}{n}}
+5>3z: ${if >{5 } {3z }{y}{n}}
+5>a: ${if >{ 5 } {a}{y}{n}}
+
+def:y ${if def:tod_log{y}{n}}
+def:n ${if def:host{y}{n}}
+def:f ${if def:post{y}{n}}
+def:h_f ${if def:h_xxx {y}{n}}
+def:h_f ${if def:h_xxx:{y}{n}}
+def:d: ${if def:tod_log:{y}{n}}
+
+exists: ${if exists{/etc/passwd}{y}{n}}
+exists: ${if exists{/doesnt}{y}{n}}
+
+eq: ${if eq{abc}{abc}{y}{n}}
+eq: ${if eq{abc}{xyz}{y}{n}}
+!eq: ${if !eq{abc}{abc}{y}{n}}
+!eq: ${if !eq{abc}{xyz}{y}{n}}
+
+eqi: ${if eqi{abc}{abc}{y}{n}}
+eqi: ${if eqi{abc}{ABC}{y}{n}}
+eqi: ${if eqi{abc}{xyz}{y}{n}}
+!eqi: ${if !eqi{abc}{abc}{y}{n}}
+!eqi: ${if !eqi{abc}{aBc}{y}{n}}
+!eqi: ${if !eqi{abc}{xyz}{y}{n}}
+
+lt: ${if lt{ABC}{abc}{y}{n}}
+lti: ${if lti{ABC}{abc}{y}{n}}
+le: ${if le{ABC}{abc}{y}{n}}
+lei: ${if lei{ABC}{abc}{y}{n}}
+gt: ${if gt{ABC}{abc}{y}{n}}
+gti: ${if gti{ABC}{abc}{y}{n}}
+ge: ${if ge{ABC}{abc}{y}{n}}
+gei: ${if gei{ABC}{abc}{y}{n}}
+
+isip: ${if isip {1.2.3.4}{y}{n}} 1.2.3.4
+isip4: ${if isip4{1.2.3.4}{y}{n}} 1.2.3.4
+isip6: ${if isip6{1.2.3.4}{y}{n}} 1.2.3.4
+isip: ${if isip {1:2:3:4}{y}{n}} 1:2:3:4
+isip4: ${if isip4{1:2:3:4}{y}{n}} 1:2:3:4
+isip6: ${if isip6{1:2:3:4}{y}{n}} 1:2:3:4
+isip: ${if isip {::1}{y}{n}} ::1
+isip4: ${if isip4{::1}{y}{n}} ::1
+isip6: ${if isip6{::1}{y}{n}} ::1
+isip: ${if isip {fe80::a00:20ff:fe86:a061}{y}{n}} fe80::a00:20ff:fe86:a061
+isip4: ${if isip4{fe80::a00:20ff:fe86:a061}{y}{n}} fe80::a00:20ff:fe86:a061
+isip6: ${if isip6{fe80::a00:20ff:fe86:a061}{y}{n}} fe80::a00:20ff:fe86:a061
+isip: ${if isip {rhubarb}{y}{n}} rhubarb
+isip4: ${if isip4{rhubarb}{y}{n}} rhubarb
+isip6: ${if isip6{rhubarb}{y}{n}} rhubarb
+
+match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
+match: ${if match{abcd}{^\N([ab]+)(\w+)$\N}{$2$1}fail}
+match: ${if match{abcd}{^([ab]+)(\\w+)\$}{$2$1}fail}
+match: ${if match{wxyz}{^([ab]+)(\\w+)\$}{$2$1}fail}
+match: ${if match{abcd}{^([ab]+)(\\w+)\$}{$2[${if match{xyz}{(.*)}{$1}fail}]$1}fail}
+
+match_domain: ${if match_domain{a.b.c}{x.y.z:a.b.c:p.q.r}{yes}{no}}
+match_domain: ${if match_domain{a.b.c}{x.y.z:p.q.r}{yes}{no}}
+match_domain: ${if match_domain{5.aa.bb}{+dlist}{yes}{no}}
+match_domain: ${if match_domain{xxxyz}{+dlist}{yes}{no}}
+match_domain: ${if match_domain{xyz}{+dlist}{yes}{no}}
+
+match_address: ${if match_address{x@y.z}{p@q:*@y.z}{yes}{no}}
+match_address: ${if match_address{x@y.z}{p@q:x@*.z}{yes}{no}}
+
+match_local_part:${if match_local_part{jo}{jack:jill:jo:john}{yes}{no}}
+match_local_part:${if match_local_part{jo}{\N^\w\N}{yes}{no}}
+
+match_ip: 01 ${if match_ip{1.2.3.4}{4.5.6.7:1.2.3.4}}
+match_ip: 02 ${if match_ip{1.2.3.4}{4.5.6.7:1.2.3.6}}
+match_ip: 03 ${if match_ip{1.2.3.4}{4.5.6.7:1.2.3.6/24}}
+match_ip: 04 ${if match_ip{1.2.3.4}{4.5.6.7:1.2.3.6:*}}
+match_ip: 05 ${if match_ip{1.2.3.4}{4.5.6.7:1.2.3.6:name}}
+match_ip: 06 ${if match_ip{1.2.3.4}{:4.5.6.7}}
+match_ip: 07 ${if match_ip{}{:4.5.6.7}}
+match_ip: 08 ${if match_ip{V4NET.11.12.13}{+hlist}}
+match_ip: 09 ${if match_ip{V4NET.11.12.14}{+hlist}}
+match_ip: 10 ${if match_ip{192.168.3.4}{+hlist}}
+match_ip: 11 ${if match_ip{somename}{+hlist}}
+match_ip: 12 ${if match_ip{1.2.3.4}{lsearch;DIR/aux-fixed/0002.matchip}}
+match_ip: 13 ${if match_ip{1.2.3.4}{net-lsearch;DIR/aux-fixed/0002.matchip}}
+match_ip: 14 ${if match_ip{5.6.7.8}{net24-lsearch;DIR/aux-fixed/0002.matchip}}
+
+queue_running: ${if queue_running{y}{n}}
+first_delivery: ${if first_delivery{y}{n}}
+
+queue_running after or: ${if or{{eq {0}{0}}{queue_running}}{y}{n}}
+first_delivery after or: ${if or{{eq {0}{0}}{first_delivery}}{y}{n}}
+
+# Default values for both if strings
+
+\${if eq{1}{1}} >${if eq{1}{1}}<
+\${if eq{1}{2}} >${if eq{1}{2}}<
+
+# Lookups: DIR is the testing directory. In this test we can only use the
+# lookups that are required in all cases.
+
+${lookup{postmaster}lsearch{DIR/aux-fixed/0002.aliases}{$value}fail}
+
+${lookup{x@y}lsearch*@{DIR/aux-fixed/0002.starat}{$value}fail}
+${lookup{x@z}lsearch*{DIR/aux-fixed/0002.starat}{$value}fail}
+${lookup{x@z}lsearch*@{DIR/aux-fixed/0002.starat}{$value}fail}
+${lookup{x@w}lsearch*@{DIR/aux-fixed/0002.starat}{$value}fail}
+
+${lookup{a.b.c.d}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}fail}
+${lookup{x.y.z}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}{failed x.y.z}}
+${lookup{p.q}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}fail}
+${lookup{o.p.q}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}fail}
+${lookup{m.n.o.p.q}partial-lsearch{DIR/aux-fixed/0002.domains}{$value}fail}
+${lookup{x.y.z}partial1-lsearch{DIR/aux-fixed/0002.domains}{$value}fail}
+${lookup{x.y.z}partial0-lsearch{DIR/aux-fixed/0002.domains}{$value}fail}
+
+q1: ${lookup{abc}lsearch{DIR/aux-fixed/0002.quoted}}
+q2: ${lookup{xyz}lsearch{DIR/aux-fixed/0002.quoted}}
+q3: ${lookup{pqr}lsearch{DIR/aux-fixed/0002.quoted}}
+q4: ${lookup{a:b}lsearch{DIR/aux-fixed/0002.quoted}}
+q5: ${lookup{"quoted"}lsearch{DIR/aux-fixed/0002.quoted}}
+q6: ${lookup{white space}lsearch{DIR/aux-fixed/0002.quoted}}
+q7: ${lookup{b\\s}lsearch{DIR/aux-fixed/0002.quoted}}
+
+abc: ${lookup{abc}wildlsearch{DIR/aux-var/0002.wild}}
+a.b.c: ${lookup{a.b.c}wildlsearch{DIR/aux-var/0002.wild}}
+ab.c: ${lookup{ab.c}wildlsearch{DIR/aux-var/0002.wild}}
+xyz: ${lookup{xyz}wildlsearch{DIR/aux-var/0002.wild}}
+Xyz: ${lookup{Xyz}wildlsearch{DIR/aux-var/0002.wild}}
+Zyz: ${lookup{Zyz}wildlsearch{DIR/aux-var/0002.wild}}
+a b: ${lookup{a b}wildlsearch{DIR/aux-var/0002.wild}}
+a b: ${lookup{a b}wildlsearch{DIR/aux-var/0002.wild}}
+a:b: ${lookup{a:b}wildlsearch{DIR/aux-var/0002.wild}}
+a.b: ${lookup{a.b}wildlsearch{DIR/aux-var/0002.wild}}
+a..b: ${lookup{a..b}wildlsearch{DIR/aux-var/0002.wild}}
+a9b: ${lookup{a9b}wildlsearch{DIR/aux-var/0002.wild}}
+a99b: ${lookup{a99b}wildlsearch{DIR/aux-var/0002.wild}}
+
+# Should give the same results as above because expansion does nothing
+
+abc: ${lookup{abc}nwildlsearch{DIR/aux-var/0002.wild}}
+a.b.c: ${lookup{a.b.c}nwildlsearch{DIR/aux-var/0002.wild}}
+ab.c: ${lookup{ab.c}nwildlsearch{DIR/aux-var/0002.wild}}
+xyz: ${lookup{xyz}nwildlsearch{DIR/aux-var/0002.wild}}
+Xyz: ${lookup{Xyz}nwildlsearch{DIR/aux-var/0002.wild}}
+Zyz: ${lookup{Zyz}nwildlsearch{DIR/aux-var/0002.wild}}
+a b: ${lookup{a b}nwildlsearch{DIR/aux-var/0002.wild}}
+a b: ${lookup{a b}nwildlsearch{DIR/aux-var/0002.wild}}
+a:b: ${lookup{a:b}nwildlsearch{DIR/aux-var/0002.wild}}
+
+# Should fail because of no expansion
+
+a.b: ${lookup{a.b}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NO}}
+a..b: ${lookup{a..b}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NO}}
+a9b: ${lookup{a9b}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NO}}
+a99b: ${lookup{a99b}nwildlsearch{DIR/aux-var/0002.wild}{$value}{NO}}
+
+# But these should succeed
+
+a\\:b: ${lookup{a\\:b}nwildlsearch{DIR/aux-var/0002.wild}}
+a\\:Xb: ${lookup{a\\:Xb}nwildlsearch{DIR/aux-var/0002.wild}}
+
+# IP address (CIDR) lookups
+
+1.2.3.4: ${lookup{1.2.3.4}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+1.2.3.5: ${lookup{1.2.3.5}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+1.2.3.5: ${lookup{1.2.3.5}iplsearch*{DIR/aux-fixed/0002.iplsearch}}
+abcd::cdab: ${lookup{abcd::cdab}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+192.168.1.2: ${lookup{192.168.1.2}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+192.168.5.6: ${lookup{192.168.5.6}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+abcd:abcd:: ${lookup{abcd:abcd::}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+abcd:abcd:1:: ${lookup{abcd:abcd:1::}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+abcd:abcd::3 ${lookup{abcd:abcd::3}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+rhubarb ${lookup{rhubarb}iplsearch{DIR/aux-fixed/0002.iplsearch}}
+
+
+# Nested Lookups - style 1
+
+${lookup{${lookup{key1}lsearch{DIR/aux-fixed/0002.rec}{$value}{key1f}}}lsearch{DIR/aux-fixed/0002.rec}{$value}fail}
+${lookup{${lookup{key3}lsearch{DIR/aux-fixed/0002.rec}{$value}{key1f}}}lsearch{DIR/aux-fixed/0002.rec}{$value}fail}
+
+# Nested Lookups - style 2
+
+${lookup{key1}lsearch{DIR/aux-fixed/0002.rec}{${lookup{$value}lsearch{DIR/aux-fixed/0002.rec}{$value}{failed for $value}}}{failed for key1}}
+${lookup{key3}lsearch{DIR/aux-fixed/0002.rec}{${lookup{$value}lsearch{DIR/aux-fixed/0002.rec}{$value}{failed for $value}}}{failed for key1}}
+
+# Other nesting tests
+
+${lookup{one}lsearch{DIR/aux-fixed/0002.alias1}{$value${lookup{one}lsearch{DIR/aux-fixed/0002.alias2}{,$value}}}{${lookup{one}lsearch{DIR/aux-fixed/0002.alias2}{$value}fail}}}
+${lookup{two}lsearch{DIR/aux-fixed/0002.alias1}{$value${lookup{two}lsearch{DIR/aux-fixed/0002.alias2}{,$value}}}{${lookup{two}lsearch{DIR/aux-fixed/0002.alias2}{$value}fail}}}
+${lookup{both}lsearch{DIR/aux-fixed/0002.alias1}{$value${lookup{both}lsearch{DIR/aux-fixed/0002.alias2}{,$value}}}{${lookup{both}lsearch{DIR/aux-fixed/0002.alias2}{$value}fail}}}
+${lookup{neither}lsearch{DIR/aux-fixed/0002.alias1}{$value${lookup{neither}lsearch{DIR/aux-fixed/0002.alias2}{,$value}}}{${lookup{neither}lsearch{DIR/aux-fixed/0002.alias2}{$value}fail}}}
+
+# Lookup quotes for standardly expected lookups
+
+lsearch ${quote_lsearch: !@#\$%^&*()_-+=|\\~`1234567890\{[\}]qwertyuiop:;"'asdfghjkl<,>.?/zxcvbnm}
+xxx ${quote_xxx: !@#\$%^&*()_-+=|\\~`1234567890\{[\}]qwertyuiop:;"'asdfghjkl<,>.?/zxcvbnm}
+
+# Extract
+
+${extract{B}{A=1 B=2 C=3}}
+${extract{ B }{A=1 B=2 C=3}{$value}{NOT FOUND}}
+${extract{2}{:}{1:2:3}}
+${extract{ 2 }{:}{1:2:3}{$value}{NOT FOUND}}
+Empty:<${extract{D}{A=1 B=2 C=3}}>
+Empty:<${extract{4}{:}{1:2:3}}>
+${extract{C}{A=1 B=2 C=3}{<$value>}}
+${extract{3}{:}{1:2:3}{<$value>}}
+Empty:<${extract{Z}{A=1 B=2 C=3}{<$value>}}>
+Empty:<${extract{4}{:}{1:2:3}{<$value>}}>
+${extract{Z}{A=1 B=2 C=3}{<$value>}{no Z}}
+${extract{4}{:}{1:2:3}{<$value>}{no 4}}
+${extract{Z}{A=1 B=2 C=3}{<$value>}fail}
+${extract{4}{:}{1:2:3}{<$value>}fail}
+${extract{K4}{${sg{1=A 4=D 3=C}{(\\d+)=}{K\$1=}}}}
+${extract{0}{:}{a:b:c:d:e}{$value}{FAIL}}
+${extract{1}{:}{a:b:c:d:e}{$value}{FAIL}}
+${extract{-1}{:}{a:b:c:d:e}{$value}{FAIL}}
+${extract{-5}{:}{a:b:c:d:e}{$value}{FAIL}}
+${extract{-6}{:}{a:b:c:d:e}{$value}{FAIL}}
+${extract{-3}{:,}{a,,b::c}}
+${extract{2}{:,}{a,,b::c}}
+${extract{3}{:,}{a,,b::c}}
+${extract{a-b}{X = "one two" a-b "three four" 5=99}}
+${extract{}{X=3}}
+${extract{ }{X=3}}
+${extract{ 2 }{ }{a b c}}
+
+# Translation
+
+abcdea aaa xyz ${tr{abcdea}{aaa}{xyz}}
+abcdea a z ${tr{abcdea}{a}{z}}
+abcdea a ${tr{abcdea}{a}{}}
+abcdea abc z ${tr{abcdea}{abc}{z}}
+
+# RFC 2047
+
+abcd ${rfc2047:abcd}
+<:abcd:> ${rfc2047:<:abcd:>}
+<:ab cd:> ${rfc2047:<:ab cd:>}
+Long: ${rfc2047: here we go: a string that is going to be encoded: it will go over the 75-char limit}
+Long: ${rfc2047: here we go: a string that is going to be encoded: it will go over the 75-char limit by a long way; in fact this one will go over the 150 character limit}
+
+
+# UTF-8
+
+abcd ${from_utf8:abcd}
+aÀÿd ${from_utf8:aÃ\80ÿd}
+toobig ${from_utf8:aĀd}
+
+# Substitution
+
+\${sg{abcdefabcdef}{abc}{xyz}} =${sg{abcdefabcdef}{abc}{xyz}}
+\${sg{ab:xy::z}{:}{::}} =${sg{ab:xy::z}{:}{::}}
+\${sg{abcdefabcdef}{(..)[^c]}{>\$1<}} =${sg{abcdefabcdef}{(..)[^c]}{>$1<}}
+\${sg{abcdefabcdef}{(..)[^c]}{>\\\$1<}} =${sg{abcdefabcdef}{(..)[^c]}{>\$1<}}
+\${sg{abcdefabcdef}{(..)[^c]}{>\\N\$1\\N<}}=${sg{abcdefabcdef}{(..)[^c]}{>\N$1\N<}}
+\${sg{abbab}{a*}{+}} =${sg{abbab}{a*}{+}}
+
+# File insertion
+
+${readfile}
+${readfile{DIR/aux-fixed/0002.readfile}}
+${readfile{DIR/aux-fixed/0002.readfile}{}}
+${readfile{DIR/aux-fixed/0002.readfile}{:}}
+${readfile{DIR/aux-fixed/0002.readfile}{ - }}
+${readfile{/non/exist/file}}
+${if exists{/non/exist/file}{${readfile{/non/exist/file}}}{non-exist}}
+>${readfile{DIR/aux-fixed/0002.readfile}{!}}\
+ <
+
+# Calling a command
+
+${run{DIR/aux-fixed/0002.runfile 0}}
+RC=$runrc
+${run{DIR/aux-fixed/0002.runfile 0}{1}{2}}
+RC=$runrc
+${run{DIR/aux-fixed/0002.runfile 0}{$value}{2}}
+RC=$runrc
+${run{DIR/aux-fixed/0002.runfile 1}{$value}{2}}
+RC=$runrc
+${run{DIR/aux-fixed/0002.runfile 1}{$value}{$value}}
+RC=$runrc
+${run{DIR/test-nonexist}{Y}{N}}
+RC=$runrc
+>>${run{DIR/bin/iefbr14}}<<
+RC=$runrc
+${if eq{1}{2}{${run{/non/exist}}}{1!=2}}
+RC=$runrc
+
+# PRVS
+
+${prvs{userx@test.ex}{secret}}
+${prvs{userx@test.ex}{secret}{1}}
+${prvs{userx@test.ex}{secret}{8}}
+
+# Syntax errors
+
+${prvs{userx@test.ex}{secret}{12}}
+${prvs{userx@test.ex}{secret}{rhubarb}}
+${prvs{userx@test.ex}{secret}{}}
+
+# Correct checks; can't put explicit addresses in the tests, because they
+# will change over time.
+
+${prvscheck{${prvs{userx@test.ex}{secret}}}{secret}}
+result=$prvscheck_result
+
+${prvscheck{${prvs{userx@test.ex}{secret}{1}}}{secret}\
+{>$prvscheck_result< >$prvscheck_address< >$prvscheck_keynum<}}
+result=$prvscheck_result
+
+${prvscheck{${prvs{userx@test.ex}{secret}{8}}}{secret}{}}
+result=$prvscheck_result
+
+# Incorrect secret
+
+${prvscheck{${prvs{userx@test.ex}{secret}}}{socrot}}
+result=$prvscheck_result
+
+${prvscheck{${prvs{userx@test.ex}{secret}}}{socrot}{$prvscheck_keynum}}
+result=$prvscheck_result
+
+# Non-prvs address
+
+>>${prvscheck{userx@test.ex}{secret}}<<
+result=$prvscheck_result
+
+# Syntax errors
+
+${tod_log
+${tod_log+6
+${expand:abcd
+${expand:abcd${tod_log}
+${hmac{xxx}{a}{b}}
+${if and {xyz}{a}{b}}
+${if and {{xya}}{a}{b}}
+${if and {{${lookup{x}lsearch{/a/b}}}}{a}{b}}
+${if eq {$h_xyz}{1}{y}{n}}
+${if or {eq {}{}{yes}{no}}
+${if or {{eq {}{}{yes}{no}}
+${if or {{eq {}{}}{yes}{no}}
+${substr_1_:12345}
+${substr__3:12345}
+
+# Miscellaneous (for bug fixes, etc)
+
+${if ={1}{1} {true}{${if ={1}{1} {true}{${if ={1}{1}{true}fail}}}}}
+
+****
+# Test "escape" with print_topbitchars
+exim -be -DPTBC=print_topbitchars
+escape: ${escape:B7·F2ò}
+****
+# Checkout expansion debugging
+exim -d-all+expand -be
+primary_hostname: $primary_hostname
+match: ${if match{abcd}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
+match: ${if match{wxyz}{\N^([ab]+)(\w+)$\N}{$2$1}fail}
+${if eq {1}{1}{yes}{${lookup{xx}lsearch{/non/exist}}}}
+match_address: ${if match_address{a.b.c}{a.b.c}{yes}{no}}
+****
+# Sender host name and address etc, all unset
+exim -be
+-oMa sender_host_address = $sender_host_address
+ sender_host_port = $sender_host_port
+-oMaa sender_host_authenticated = $sender_host_authenticated
+-oMai authenticated_id = $authenticated_id
+-oMas authenticated_sender = $authenticated_sender
+-oMi interface_address = $interface_address
+ interface_port = $interface_port
+-oMr received_protocol = $received_protocol
+-oMs sender_host_name = $sender_host_name
+-oMt sender_ident = $sender_ident
+****
+# Sender host name and address etc, all set except host name.
+exim -d-all+expand -be -oMa V4NET.0.0.1.1234 -oMaa AAA -oMai philip -oMas xx@yy.zz -oMi 1.1.1.1.99 -oMr special -oMt me
+-oMa sender_host_address = $sender_host_address
+ sender_host_port = $sender_host_port
+-oMaa sender_host_authenticated = $sender_host_authenticated
+-oMai authenticated_id = $authenticated_id
+-oMas authenticated_sender = $authenticated_sender
+-oMi interface_address = $interface_address
+ interface_port = $interface_port
+-oMr received_protocol = $received_protocol
+-oMt sender_ident = $sender_ident
+****
+# Sender host name explicitly set
+exim -be -oMa V4NET.0.0.1.1234 -oMs my.host.name
+-oMa sender_host_address = $sender_host_address
+ sender_host_port = $sender_host_port
+-oMs sender_host_name = $sender_host_name
+****
+# Sender host name lookup fails (V4NET.11.12.13 is not reverse registered)
+exim -be -oMa V4NET.11.12.13
+-oMs sender_host_name = $sender_host_name
+ host_lookup_failed = $host_lookup_failed
+****
+# Sender host name and protocol set by Sendmail-compatible option
+exim -be -pspecial:host.name
+-p received_protocol = $received_protocol
+-p sender_host_name = $sender_host_name
+****
+# Sender host name and address etc, all set except host name,
+# which should therefore be looked up from the address, but not if
+# we are skipping. The debug output for this test will show when
+# the lookup occurs.
+exim -d-all+host_lookup+expand -be -oMa V4NET.0.0.1.1234 -oMaa AAA -oMai philip -oMas xx@yy.zz -oMi 1.1.1.1.99 -oMr special -oMt me
+-oMa sender_host_address = $sender_host_address
+ sender_host_port = $sender_host_port
+-oMaa sender_host_authenticated = $sender_host_authenticated
+-oMai authenticated_id = $authenticated_id
+-oMas authenticated_sender = $authenticated_sender
+-oMi interface_address = $interface_address
+ interface_port = $interface_port
+-oMr received_protocol = $received_protocol
+----> No lookup yet: ${if eq{black}{white}{$sender_host_name}{No}}
+-oMs sender_host_name = $sender_host_name
+-oMt sender_ident = $sender_ident
+****
+# Test no auto host name lookup for query-style lookups
+exim -d -bh V4NET.0.0.1
+****
+exim -d -bh V4NET.0.0.2
+****
+# Test $reply_address
+exim -bh V4NET.0.0.0
+mail from:<>
+rcpt to:<some@body>
+data
+.
+mail from:<>
+rcpt to:<some@body>
+data
+From: a@b
+.
+mail from:<>
+rcpt to:<some@body>
+data
+From: a@b
+Reply-to: c@d
+.
+mail from:<>
+rcpt to:<some@body>
+data
+Reply-to:
+.
+mail from:<>
+rcpt to:<some@body>
+data
+Reply-to:
+From: x@y
+.
+quit
+****
+# Check RFC 2047 decoding with (default) length check
+exim -bh V4NET.0.0.0
+mail from:<>
+rcpt to:<some@body>
+data
+Subject: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_it_will_go_over_the_75-char_limit_by_a_long_way=3B_in_fact_this_one_will_go_over_the_150_character_limit?=
+.
+quit
+****
+# Check RFC 2047 decoding with length check disabled
+exim -DLENCHECK=check_rfc2047_length=false -bh V4NET.0.0.0
+mail from:<>
+rcpt to:<some@body>
+data
+Subject: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_it_will_go_over_the_75-char_limit_by_a_long_way=3B_in_fact_this_one_will_go_over_the_150_character_limit?=
+.
+quit
+****
--- /dev/null
+# Caseless address blocking
+exim -bh 1.1.1.1
+mail from:<a@b.c>
+rcpt to:<x@test.ex>
+rset
+mail from:<a@B.C>
+rcpt to:<x@test.ex>
+rset
+mail from:<A@b.c>
+rcpt to:<x@test.ex>
+rset
+mail from:<A@B.C>
+rcpt to:<x@test.ex>
+rset
+mail from:<x@y.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<x@Y.Z>
+rcpt to:<x@test.ex>
+rset
+mail from:<X@y.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<X@Y.Z>
+rcpt to:<x@test.ex>
+rset
+mail from:<ax@e.f>
+rcpt to:<x@test.ex>
+rset
+mail from:<ay@g.h>
+rcpt to:<x@test.ex>
+rset
+mail from:<bX@E.F>
+rcpt to:<x@test.ex>
+rset
+mail from:<bY@G.H>
+rcpt to:<x@test.ex>
+rset
+mail from:<1@e.f>
+rcpt to:<x@test.ex>
+rset
+mail from:<bz@e.f>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@aa.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@AA.COM>
+rcpt to:<x@test.ex>
+rset
+mail from:<Q@bb.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<Q@BB.Com>
+rcpt to:<x@test.ex>
+rset
+mail from:<cc@dd.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<CC@DD.COM>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@Dd.Com>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@nn.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<Q@NN.COM>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@MM.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<Pp@Qq.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<abcd@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<ABCD@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<ax@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<bX@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<Ay@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<BY@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<blocked@xy.zz>
+rcpt to:<x@test.ex>
+rset
+mail from:<BLOCKED@zz.xy>
+rcpt to:<x@test.ex>
+rset
--- /dev/null
+# Caseful address blocking
+exim -bh 1.1.1.1
+mail from:<a@b.c>
+rcpt to:<x@test.ex>
+rset
+mail from:<a@B.C>
+rcpt to:<x@test.ex>
+rset
+mail from:<A@b.c>
+rcpt to:<x@test.ex>
+rset
+mail from:<A@B.C>
+rcpt to:<x@test.ex>
+rset
+mail from:<x@y.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<x@Y.Z>
+rcpt to:<x@test.ex>
+rset
+mail from:<X@y.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<X@Y.Z>
+rcpt to:<x@test.ex>
+rset
+mail from:<ax@e.f>
+rcpt to:<x@test.ex>
+rset
+mail from:<ay@g.h>
+rcpt to:<x@test.ex>
+rset
+mail from:<bX@E.F>
+rcpt to:<x@test.ex>
+rset
+mail from:<bY@G.H>
+rcpt to:<x@test.ex>
+rset
+mail from:<1@e.f>
+rcpt to:<x@test.ex>
+rset
+mail from:<bz@e.f>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@aa.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@AA.COM>
+rcpt to:<x@test.ex>
+rset
+mail from:<Q@bb.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<Q@BB.Com>
+rcpt to:<x@test.ex>
+rset
+mail from:<cc@dd.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<CC@DD.COM>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@Dd.Com>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@nn.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<Q@NN.COM>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@MM.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<q@mm.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<Pp@Qq.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<abcd@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<ABCD@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<AbCd@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<ax@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<bX@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<Ay@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<BY@aa.bb>
+rcpt to:<x@test.ex>
+rset
+mail from:<blocked@xy.zz>
+rcpt to:<x@test.ex>
+rset
+mail from:<BLOCKED@zz.xy>
+rcpt to:<x@test.ex>
+rset
+mail from:<BlOcKeD@zz.xy>
+rcpt to:<x@test.ex>
--- /dev/null
+# -bs to simple local delivery
+exim -bs -odi
+mail from:someone@some.domain
+rcpt to:CALLER@HOSTNAME
+data
+This is a test message.
+It has three lines.
+This is the last line.
+.
+quit
+****
+exim -bs -odi
+mail from:someone@some.domain
+rcpt to:CALLER@HOSTNAME
+data
+Subject: second
+
+This is a second test message.
+.
+quit
+****
+exim_exim -bs -odq
+mail from:someone@some.domain
+rcpt to:CALLER@HOSTNAME
+data
+Subject: third
+Reply-to: some@body
+
+This is a third test message.
+.
+quit
+****
+exim -q
+****
--- /dev/null
+# -bS to several local deliveries
+exim -bS -odi
+mail from:someone@some.where
+rcpt to:blackhole@HOSTNAME
+data
+from: me
+To: blackhole
+
+This is some text
+.
+mail from:CALLER@HOSTNAME
+rcpt to:devnull@HOSTNAME
+data
+from: me
+to: devnull
+
+More text
+.
+MAIL From:<someone@some.where>
+rCpT TO:<CALLER@HOSTNAME>
+rcpt to:blackhole@HOSTNAME
+DATA
+From:<someone@some.where>
+To: Recipients not given:;
+
+Yet more text.
+.
+quit
--- /dev/null
+# -bS syntax error (1st message)
+2
+exim -bS -odi
+mail from:someone@some.where<
+rcpt to:blackhole@HOSTNAME
+data
+from: me
+To: blackhole
+
+This is some text
+.
+quit
--- /dev/null
+# -bS syntax error (2nd message)
+1
+exim -bS -odi
+mail from:someone@some.where
+rcpt to:CALLER@HOSTNAME
+data
+from: someone@some.where
+To: CALLER@HOSTNAME
+Subject: testing
+Message-id: abcd%rxyz@p.q.r
+
+Here is testing data
+..that line started with a dot
+.
+mail from:someone@some.where<
+rcpt to:blackhole@HOSTNAME
+data
+from: me
+To: blackhole
+
+This is some text
+.
+quit
--- /dev/null
+# -bS syntax error on RCPT
+1
+exim -bS -odi
+mail from:someone@some.where
+rcpt to:CALLER@HOSTNAME
+data
+from: someone@some.where
+To: CALLER@HOSTNAME
+Subject: testing
+
+Here is testing data
+..that line started with a dot
+.
+mail from:someone@some.where
+rcpt to:<blackhole@HOSTNAME
+data
+from: me
+To: blackhole
+
+This is some text
+.
+quit
--- /dev/null
+# -bS Unexpected EOF in data
+1
+exim -bS -odi
+mail from:someone@some.where
+rcpt to:CALLER@HOSTNAME
+data
+from: someone@some.where
+To: CALLER@HOSTNAME
+Subject: testing
+
+Here is testing data
+..that line started with a dot
+.
+mail from:someone@some.where
+rcpt to:blackhole@HOSTNAME
+data
+from: me
+To: blackhole
+
+Some data, but no .
--- /dev/null
+# -bS Unexpected EOF in headers
+1
+exim -bS -odi
+mail from:someone@some.where
+rcpt to:CALLER@HOSTNAME
+data
+from: someone@some.where
+To: CALLER@HOSTNAME
+Subject: testing
+
+Here is testing data
+..that line started with a dot
+.
+mail from:someone@some.where
+rcpt to:blackhole@HOSTNAME
+data
+from: me
--- /dev/null
+# -bS Use of HELO/RSET
+exim -bS -odi
+HELO some.domain
+mail from:someone@some.where
+rcpt to:CALLER@HOSTNAME
+RSET
+mail from:someone@some.where
+rcpt to:blackhole@HOSTNAME
+data
+from: me
+to: the.void
+
+This data will get slung...
+.
--- /dev/null
+# Data after quoted string
+no_stdout_check
+1
+exim -bV
+****
+
--- /dev/null
+# Rewriting
+exim -brw userx@myhost.test.ex
+****
+exim -brw abcd@question
+****
+exim -brw pqr@quiggly
+****
+exim -brw nopqr@quince
+****
+exim -odi userx
+From: abcd@question
+To: userx, xpqr@query.query
+****
+exim -odq hhhh@h.h.h.h
+****
+exim -brw root@box1.plc.example
+****
+exim -brw jules@box1.plc.example
+****
+exim -brw jules@box2.plc.example
+****
+exim -brw jules@box3.plc.example
+****
+exim -odi -f jules@box1.plc.example userx
+From: jules@box1.plc.example
+To: userx, jules@box1.plc.example,
+ jules@box2.plc.example,
+ jules@box3.plc.example
+Reply-to: jules@box3.plc.example
+****
+exim -odi -bs -oMa 10.0.0.2
+mail from:<jules@box3.plc.example>
+rcpt to:<userx@test.ex>
+quit
+****
+exim -brw abc@X.one.two
+****
+exim -brw '"abc"@X.one.two'
+****
+exim -brw '"abc@xyz"@X.one.two'
+****
+no_msglog_check
--- /dev/null
+# local part prefix
+need_ipv4
+#
+exim -odi page+userx
+Some message text.
+****
+exim -odi page+ux
+Some more message text.
+****
+exim -odi B+userx@Test.Ex
+Text.
+****
+server PORT_S
+220 Server ready
+EHLO
+250 OK
+MAIL FROM
+250 OK
+RCPT TO
+250 OK
+DATA
+300 go ahead
+.
+250 OK
+QUIT
+250 OK
+****
+exim -odi S+userx@Test.Ex
+More text.
+****
+exim -odi userx-B@Test.Ex X+userx-B@Test.Ex
+****
+server PORT_S
+220 Server ready
+EHLO
+250 OK
+MAIL FROM
+250 OK
+RCPT TO
+250 OK
+DATA
+300 go ahead
+.
+250 OK
+QUIT
+250 OK
+****
+exim -odi Userx-S@Test.Ex
+More text.
+****
--- /dev/null
+# local part suffix
+exim -odi userx+page
+Some message text.
--- /dev/null
+# ETRN (prohibited host)
+exim -bh 1.1.1.1
+etrn some.random.domain
+quit
+****
+exim -bh 10.9.8.7
+etrn some.domain
+quit
+****
+exim -bh 10.9.8.8
+etrn some.domain
+quit
+****
--- /dev/null
+# ETRN (permitted host)
+exim -bh 127.0.0.1
+etrn #some.random.domain
+quit
--- /dev/null
+# SMTP syntax errors logging
+exim -bh 10.10.10.10
+helo !@#$%^&*(
+debug
+rhubarb
+mail
+quit
+****
+exim -bs
+helo !@#$%^&*(
+debug
+rhubarb
+mail
+quit
+****
+exim -bs
+etrn abc
+ehlo a.b.c
+rcpt to:<a@b>
+mail from:<x@y>
+data
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+etrn #abc
+rset
+mail from:
+rset
+mail from:<x@y>
+mail from:<x@y>
+rcpt to:
+rset
+quit
+****
--- /dev/null
+# -bh and megahomed hosts
+#
+# Note that we use an explicit address in the 10.250.0.0/16 network, because
+# that is what is used by the testing code in Exim when it generates 2048 IP
+# addresses for the absurdly multi-homed host.
+#
+exim -bh 10.250.104.7
+quit
+****
--- /dev/null
+# Extra ACLs: not-SMTP/connect/HELO/MAIL
+1
+exim -odi -f userx@test1 userx
+Test message 1.
+.
+****
+exim -odi -f ok@test1 userx
+Test message 2.
+.
+****
+1
+exim -odi -f ok@test2 userx
+Test message 3.
+.
+****
+exim -odi -f ok@test3 userx
+Test message 4.
+.
+****
+1
+exim -odi -f ok@test4 userx
+Test message 5.
+.
+****
+exim -bs -oMa 10.9.8.7
+****
+exim -d-all+acl+lists -bs -oMa 10.9.8.8
+mail from:<bad@test1>
+mail from:<ok@test1>
+rcpt to:<x@y>
+rcpt to:<a@b>
+quit
+****
+exim -bs -oMa 10.9.8.9
+****
+exim -bs
+quit
+****
+exim -bs -oMa 10.9.8.10
+helo x.y.z
+quit
+****
+exim -d-all+acl+lists -odi -bs -oMa 10.9.8.8
+mail from:<ok@test3>
+rcpt to:<x@y>
+data
+Some message
+.
+quit
+****
--- /dev/null
+# Extra ACLs: freeze/defer/drop/queue/delay/$host_data
+exim -d -bh V4NET.9.8.7
+mail from:<x@y>
+rcpt to:<warn_empty@test.ex>
+data
+Testing
+.
+quit
+****
+exim -d -bh V4NET.9.8.7
+mail from:<x@y>
+rcpt to:<warn_log@test.ex>
+data
+Testing
+.
+quit
+****
+exim -d -bh V4NET.9.8.7
+mail from:<x@y>
+rcpt to:<warn_user@test.ex>
+data
+Testing
+.
+quit
+****
+exim -bh V4NET.9.8.7
+mail from:<x@y>
+rcpt to:<defer@y>
+rcpt to:<accept@y>
+rcpt to:<drop@y>
+rcpt to:<rhubarb@y>
+quit
+****
+exim -bh V4NET.9.8.7
+mail from:<>
+rcpt to:<defer_senders@y>
+quit
+****
+exim -bh V4NET.9.8.7
+mail from:<x@y>
+rcpt to:<delay_accept@y>
+rcpt to:<delay_warn@y>
+quit
+****
+exim -bh V4NET.9.8.7
+mail from:<x@y>
+rcpt to:<host_check@y>
+rcpt to:<host_check@y>
+rcpt to:<host_check2@y>
+rcpt to:<host_check2@y>
+quit
+****
+exim -bs -N -odi
+mail from:<x@y>
+rcpt to:<accept@y>
+rcpt to:<freeze@y>
+data
+Testing
+.
+mail from:<x@y>
+rcpt to:<accept@y>
+data
+Testing 2
+.
+mail from:<x@y>
+rcpt to:<queue_only@y>
+rcpt to:<accept@y>
+data
+Testing 3
+.
+mail from:<x@y>
+rcpt to:<accept@y>
+data
+Testing 4
+.
+quit
+****
+exim -bh V4NET.9.8.7
+mail from:<x@y>
+rcpt to:<nested_drop@y>
+rcpt to:<rhubarb@y>
+quit
+****
+exim -bh V4NET.9.8.7
+mail from:<x@y>
+rcpt to:<nested_drop_require@y>
+rcpt to:<rhubarb@y>
+quit
+****
+exim -bp
+****
+exim -DSERVER=server -odq -bd -oX PORT_D
+****
+client -t5 127.0.0.1 PORT_D
+??? 220
+mail from:<x@y>
+??? 250
+rcpt to:<accept@y>
+??? 250
+rcpt to:<freeze@y>
+??? 250
+data
+??? 354
+Testing
+.
+??? 250
+mail from:<x@y>
+??? 250
+rcpt to:<accept@y>
+??? 250
+data
+??? 354
+Testing 2
+.
+??? 250
+mail from:<x@y>
+??? 250
+rcpt to:<queue_only@y>
+??? 250
+rcpt to:<accept@y>
+??? 250
+data
+??? 354
+Testing 3
+.
+??? 250
+mail from:<x@y>
+??? 250
+rcpt to:<accept@y>
+??? 250
+data
+??? 354
+Testing 4
+.
+??? 250
+mail from:<x@y>
+??? 250
+rcpt to:<delay_accept@y>
+??? 250
+quit
+??? 221
+****
+killdaemon
+exim -bp
+****
+no_msglog_check
--- /dev/null
+# ACL basic tests
+exim -bh 1.2.3.4
+mail from:<x@y>
+rcpt to:<postmaster@test.ex>
+rcpt to:<z@z>
+rcpt to:<x@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<r@relay.test.ex>
+rcpt to:<x@deny.test.ex>
+rcpt to:<x@refuse.test.ex>
+rcpt to:<x@nopass>
+rcpt to:<x@wontpass>
+quit
+****
+exim -bh 5.6.7.8
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<x@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<spqr@test.ex>
+quit
+****
+exim -bh 9.9.9.9
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<a@b>
+quit
+****
+exim -bh 9.9.9.8
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<a@b>
+quit
+****
+exim -bh 9.9.9.255
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<a@b>
+quit
+****
+exim -bh 5.6.8.1
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<y@x>
+rset
+mail from:<user1@domain1>
+rcpt to:<x@y>
+rset
+mail from:<user2@domain1>
+rcpt to:<x@y>
+rset
+mail from:<user1@domain2>
+rcpt to:<x@y>
+rset
+mail from:<ok@ok.ok>
+rcpt to:<x@y>
+rcpt to:<y@x>
+rset
+quit
+****
+exim -bh 5.6.11.1
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<x2@y>
+rcpt to:<y2@y>
+quit
+****
+exim -bh 5.6.12.1
+mail from:<x@y>
+rcpt to:<x@ok>
+rcpt to:<x@y>
+quit
+****
+exim -bh 5.6.12.2
+mail from:<x@y>
+rcpt to:<x@ok>
+rcpt to:<x@y>
+quit
+****
+exim -bh 8.8.8.8
+mail from:<x@y>
+rcpt to:<x@y>
+quit
+****
+exim -bh 5.6.13.1
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<x1@y>
+rcpt to:<x2@y>
+quit
+****
+exim -bh V4NET.11.12.13
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<x1@y>
+quit
+****
+exim -bh V4NET.11.12.12
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<x1@y>
+quit
+****
+exim -bh 20.20.20.20
+mail from:<x@y>
+rcpt to:<x1@y>
+rcpt to:<x2@y>
+quit
+****
+exim -bh 20.20.20.20
+mail from:<userx@y>
+rcpt to:<x1@y>
+rcpt to:<userx@y>
+quit
+****
+exim -bh 21.21.21.21
+mail from:<userx@y>
+rcpt to:<x1@y>
+rcpt to:<userx@y>
+rcpt to:<fail@y>
+rset
+mail from:<x@y>
+rcpt to:<x1@y>
+rcpt to:<x2@y>
+rset
+mail from:<fail@y>
+rcpt to:<x@y>
+quit
+****
+exim -bh 22.22.22.22
+mail from:<userx@y>
+rcpt to:<userx@y>
+rcpt to:<x@y>
+quit
+****
+exim -bh 23.23.23.0
+mail from:<x@y>
+rcpt to:<userx@y>
+rset
+mail from:<userx@y>
+rcpt to:<userx@y>
+quit
+****
+exim -bh 23.23.23.1
+mail from:<x@y>
+rcpt to:<userx@y>
+quit
+****
+exim -bh 24.24.24.24
+mail from:<x@y>
+rcpt to:<userx@y>
+quit
+****
+exim -bh 25.25.25.25
+mail from:<x@y>
+rcpt to:<x@y>
+quit
+****
+exim -bh 26.26.26.26
+mail from:<>
+rcpt to:<x@y>
+rcpt to:<y@y>
+rcpt to:<z@y>
+quit
+****
+exim -bh 27.27.27.27
+mail from:<>
+rcpt to:<x@y>
+quit
+****
+exim -bh 28.28.28.28
+mail from:<>
+rcpt to:<x@y>
+rset
+mail from:<a@okdomain>
+rcpt to:<x@y>
+rset
+mail from:<a@baddomain>
+rcpt to:<x@y>
+quit
+****
+exim -bh V4NET.0.0.3
+mail from:<>
+rcpt to:<x@y>
+quit
+****
+exim -bh V4NET.0.0.97
+mail from:<>
+rcpt to:<x@y>
+quit
+****
+exim -bh 29.29.29.29
+mail from:<a@localhost>
+rcpt to:<x@y>
+rset
+mail from:<a@elsewhere>
+rcpt to:<x@y>
+quit
+****
+exim -bh 30.30.30.30
+mail from:<a@ten-1>
+rcpt to:<x@y>
+rset
+mail from:<a@ten-2>
+rcpt to:<x@y>
+rset
+mail from:<a@13.12.11.V4NET.rbl>
+rcpt to:<x@y>
+quit
+****
+exim -bh 31.31.31.31
+mail from:<x@y>
+rcpt to:<x@y>
+quit
+****
+exim -odi -bs -oMa 32.32.32.32
+mail from:<userx@test.ex>
+rcpt to:<userx-vs@test.ex>
+data
+Test with verify sender.
+.
+quit
+****
+exim -odi -bs -oMa 32.32.32.32
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+Test without verify sender.
+.
+quit
+****
+exim -bh 33.33.33.33
+mail from:<x@y>
+rcpt to:<x1@y>
+rcpt to:<x2@y>
+quit
+****
+# The 1 causes a 1-second delay in the test.again.dns lookup
+exim -bh 44.44.44.1
+mail from:<x@y>
+rcpt to:<x@y>
+quit
+****
+exim -odi -bs -oMa 55.55.55.55
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+ACL header adding test.
+.
+quit
+****
+exim -odi -bs -oMa 56.56.56.56
+mail from:<userx@test.ex>
+rcpt to:<cond-yes@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-1@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-10@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-true@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-rhubarb@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-no@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-0@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-00@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-false@test.ex>
+data
+.
+quit
+****
+exim -odi -bs -oMa 56.56.57.57
+mail from:<userx@test.ex>
+rcpt to:<cond-yes@test.ex>
+data
+.
+mail from:<userx@test.ex>
+rcpt to:<cond-rhubarb@test.ex>
+quit
+****
+exim -DLOG_SELECTOR=log_selector=-acl_warn_skipped -odi -bs -oMa 56.56.56.56
+mail from:<userx@test.ex>
+rcpt to:<cond-rhubarb@test.ex>
+data
+.
+quit
+****
+exim -odi -bs -oMa 56.56.58.58
+mail from:<rcpttest@test.ex>
+rcpt to:<ok1@test.ex>
+rcpt to:<bad1@test.ex>
+rcpt to:<ok2@test.ex>
+rcpt to:<ok3@test.ex>
+rcpt to:<bad2@test.ex>
+rcpt to:<bad3@test.ex>
+data
+.
+quit
+****
+exim -odi -bs -oMa 56.56.59.59
+mail from:<rcpttest@test.ex>
+rcpt to:<fail@test.ex>
+quit
+****
+exim -odi -bs -oMa V4NET.11.12.13
+mail from:<x@y>
+rcpt to:<x@y>
+rcpt to:<x1@y>
+quit
+****
--- /dev/null
+# ACL test of "standard" configuration
+#
+# Not a relay host, no authentication, sender address fails to verify.
+# accept postmaster@test.ex (postmaster at local domain)
+# deny userx@test.ex (good address in local domain, but sender verify failed)
+# deny x@y (bad address, but sender verify failed)
+# deny x@ten-1.test.ex (good relay address, but sender verify failed)
+# deny x@ten-2.test.ex (good address, but sender verify failed)
+#
+exim -odi -oMa V4NET.0.0.0 -bs
+mail from:<x@y>
+rcpt to:<postmaster@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<x@y>
+rcpt to:<x@ten-1.test.ex>
+rcpt to:<x@ten-2.test.ex>
+data
+Message 1
+.
+quit
+****
+# Not a relay host, no authentication, sender address does verify.
+# accept postmaster@test.ex (postmaster at local domain)
+# accept userx@test.ex (good address in local domain)
+# deny x@y (bad address)
+# accept x@ten-1.test.ex (good relay address)
+# deny x@ten-2.test.ex (good address, but not relay domain or host)
+exim -odi -oMa V4NET.0.0.0 -bs
+mail from:<userx@test.ex>
+rcpt to:<postmaster@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<x@y>
+rcpt to:<x@ten-1.test.ex>
+rcpt to:<x@ten-2.test.ex>
+data
+Message 2
+.
+quit
+****
+# Relay host, no authentication, sender address does verify.
+# deny bad@test.ex (bad address in local domain)
+# deny x@y (bad address)
+# accept x@ten-1.test.ex (good relay address)
+# accept x@ten-2.test.ex (good non-relay address, relay host)
+exim -odi -oMa V4NET.255.255.0 -bs
+mail from:<userx@test.ex>
+rcpt to:<bad@test.ex>
+rcpt to:<x@y>
+rcpt to:<x@ten-1.test.ex>
+rcpt to:<x@ten-2.test.ex>
+data
+Message 3
+.
+quit
+****
+# Host on serious black list
+# accept postmaster@test.ex (postmaster at local domain)
+# deny anything else
+exim -odi -oMa V4NET.11.12.13 -bs
+mail from:<userx@test.ex>
+rcpt to:<postmaster@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<x@ten-1.test.ex>
+data
+Message 4
+.
+quit
+****
+# Host on warning black list
+# accept postmaster@test.ex (postmaster at local domain)
+# deny anything else
+exim -odi -oMa V4NET.11.12.16 -bs
+mail from:<userx@test.ex>
+rcpt to:<postmaster@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<x@ten-1.test.ex>
+data
+Message 5
+.
+quit
+****
+# Local SMTP - should accept everything
+#
+exim -odi -bs
+mail from:<x@y>
+rcpt to:<postmaster@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<x@y>
+rcpt to:<x@ten-1.test.ex>
+rcpt to:<x@ten-2.test.ex>
+quit
+****
--- /dev/null
+# ACL with -bs
+exim -odi -bs
+mail from:<x@y>
+rcpt to:<userx@test.ex>
+rcpt to:<x@y>
+rcpt to:<x@ten-1.test.ex>
+rset
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<x@y>
+rcpt to:<x@ten-1.test.ex>
+data
+Message 1
+.
+quit
+****
--- /dev/null
+# ACL checks after DATA
+#
+# Syntax OK, non-null sender => should be accepted
+exim -odq -bs
+mail from:<x@y>
+rcpt to:<x@y>
+data
+Message 1
+.
+quit
+****
+# Syntax error in header => should fail
+exim -odq -bs
+mail from:<x@y>
+rcpt to:<x@y>
+data
+From: @
+
+Message 2
+.
+quit
+****
+# Syntax error in header => should fail even with null sender
+exim -odq -bs
+mail from:<>
+rcpt to:<x@y>
+data
+From: <x@y>, @
+
+Message 3
+.
+quit
+****
+# Null sender, invalid sender in header => fail
+exim -odq -bs
+mail from:<>
+rcpt to:<x@y>
+data
+From: <x@y>
+
+Message 4
+.
+quit
+****
+# Null sender, valid sender in header => accept
+exim -odq -bs
+mail from:<>
+rcpt to:<x@y>
+data
+From: <postmaster@test.ex>
+Reply-to:<x@y>
+
+Message 5
+.
+quit
+****
+# Syntax OK, non-null sender, but bad data => reject
+exim -odq -bs
+mail from:<x@y>
+rcpt to:<x@y>
+data
+Message 6 contains trigger word
+.
+quit
+****
+# Syntax OK, non-null sender, good data
+exim -odi -bs
+mail from:<x@y>
+rcpt to:<userx@test.ex>
+data
+Message 7
+.
+quit
+****
+# -bh test: Syntax error in header => should fail
+exim -bh 10.0.0.0
+mail from:<x@y>
+rcpt to:<x@y>
+data
+From: @
+
+Message 8
+.
+quit
+****
+# -bh test: Syntax OK, non-null sender, but bad data => reject
+exim -bh 10.0.0.0
+mail from:<x@y>
+rcpt to:<x@y>
+data
+Message 9 contains trigger word
+.
+quit
+****
+# Group syntax in reply-to header
+exim -odi -bs
+mail from:<x@y>
+rcpt to:<userx@test.ex>
+data
+to: group name: x@y, p@q;
+reply-to: group name: a@b, c@d;
+
+Message 10
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Nested ACL (per user) and ACL misconfigurations
+#
+# Invalid sender, should reject both
+exim -bs
+mail from:<x@y>
+rcpt to:<userx@test.ex>
+rcpt to:<postmaster@test.ex>
+quit
+****
+# Valid sender, should only reject userx
+exim -bs
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<postmaster@test.ex>
+quit
+****
+# ACL misconfigurations at RCPT time
+exim -bs
+mail from:<>
+rcpt to:<"deny verify = header_syntax"@test.ex>
+rcpt to:<"deny verify = junk"@test.ex>
+rcpt to:<"deny vorify = junk"@test.ex>
+rcpt to:<"dony verify = junk"@test.ex>
+rcpt to:<"deny !message = abcd"@test.ex>
+quit
+****
+# ACL misconfiguration at DATA time
+exim -bs
+mail from:<>
+rcpt to:<data@test.ex>
+data
+Subject: data1
+.
+quit
+****
+# ACL misconfiguration at DATA time
+exim -bs
+mail from:<>
+rcpt to:<data@test.ex>
+data
+Subject: data2
+.
+quit
+****
+# ACL misconfiguration at DATA time
+exim -bs
+mail from:<>
+rcpt to:<data@test.ex>
+data
+Subject: data3
+.
+quit
+****
--- /dev/null
+# ACL and $message_size
+#
+# SIZE unset - should reject at DATA time
+exim -bs
+mail from:<x@y>
+rcpt to:<userx@test.ex>
+data
+Testing, testing
+.
+quit
+****
+# SIZE set - should reject at RCPT time
+exim -bs
+ehlo Testing
+mail from:<x@y> SIZE=100
+rcpt to:<userx@test.ex>
+quit
+****
--- /dev/null
+# ACL with sender=address
+exim -bs
+mail from:<ok@test.ex>
+rcpt to:<a@b1>
+rset
+mail from:<notok@test.ex>
+rcpt to:<a@b2>
+rset
+mail from:<notok@abc.test.ex>
+rcpt to:<a@b3>
+rset
+mail from:<notok@xyz.test.ex>
+rcpt to:<a@b4>
+quit
+****
--- /dev/null
+# Use of $address_data in ACL
+exim -bs
+mail from:<>
+rcpt to:<ok@test.ex>
+rcpt to:<notok@test.ex>
+quit
+****
--- /dev/null
+# Hold domains
+exim -odi CALLER@one.test.ex
+This is a test message 1.
+****
+exim -odi CALLER@two.test.ex
+This is a test message 2.
+****
+exim -odi CALLER@myhost.ex
+This is a test message 3.
--- /dev/null
+# Bounce message for MX->localhost
+exim -odi userx@mxt1.test.ex
+This is a test message.
+****
--- /dev/null
+# one-time and -qq
+need_ipv4
+#
+exim -odq list@test.ex
+.
+****
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250-HELP
+250 AUTH PLAIN
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+RCPT TO:
+250 Recipient OK
+DATA
+354 Send data
+.
+250 OK
+QUIT
+250 OK
+****
+exim -q
+****
+exim -odq list@test.ex
+.
+****
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250-HELP
+250 AUTH PLAIN
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+RCPT TO:
+250 Recipient OK
+DATA
+354 Send data
+.
+250 OK
+QUIT
+250 OK
+****
+exim -qq
+****
--- /dev/null
+# smtp_accept_max_nonmail
+1
+exim -bs
+rset
+rset
+rset
+rset
+rset
+****
+1
+exim -bs
+ehlo a.b.c
+ehlo a.b.c
+ehlo a.b.c
+ehlo a.b.c
+ehlo a.b.c
+****
+exim -bs
+rset
+mail from:<x@y>
+rcpt to:<x@y>
+data
+.
+rset
+mail from:<x@y>
+rcpt to:<x@y>
+data
+.
+rset
+mail from:<x@y>
+rcpt to:<x@y>
+data
+.
+rset
+mail from:<x@y>
+rcpt to:<x@y>
+data
+.
+rset
+quit
+****
+1
+exim -bs
+ehlo a.b.c
+mail from:<x@y>
+rcpt to:<x@y>
+data
+.
+ehlo a.b.c
+mail from:<x@y>
+rcpt to:<x@y>
+data
+.
+ehlo a.b.c
+mail from:<x@y>
+rcpt to:<x@y>
+data
+.
+ehlo a.b.c
+ehlo a.b.c
+ehlo a.b.c
+ehlo a.b.c
+ehlo a.b.c
+****
+1
+exim -bs
+noop
+noop
+noop
+noop
+****
+exim -bh 10.0.0.2
+rset
+rset
+rset
+rset
+rset
+****
+exim -bh 10.0.0.1
+rset
+rset
+rset
+rset
+rset
+quit
+****
+no_msglog_check
--- /dev/null
+# control = submission (without any authentication)
+need_ipv4
+#
+exim -DSERVER=server -bd -oX PORT_D
+****
+client 127.0.0.1 PORT_D
+??? 220
+ehlo rhu.barb
+??? 250-
+??? 250-
+??? 250-
+??? 250
+mail from:<notsubmit@y>
+??? 250
+rcpt to:<x@y>
+??? 250
+data
+??? 354
+.
+??? 250
+mail from:<a@y>
+??? 250
+rcpt to:<x@y>
+??? 250
+data
+??? 354
+.
+??? 250
+mail from:<>
+??? 250
+rcpt to:<x@y>
+??? 250
+data
+??? 354
+.
+??? 250
+mail from:<notsubmit@y>
+??? 250
+rcpt to:<x@y>
+??? 250
+data
+??? 354
+Sender: sender@some.where
+.
+??? 250
+mail from:<a@y>
+??? 250
+rcpt to:<x@y>
+??? 250
+data
+??? 354
+Sender: sender@some.where
+.
+??? 250
+quit
+??? 221
+****
+killdaemon
+# Wait for delivery process
+millisleep 500
+exim -DSERVER=server -DSUBMISSION_OPTIONS=/domain=a.b.c/sender_retain -bd -oX PORT_D
+****
+client 127.0.0.1 PORT_D
+??? 220
+ehlo rhu.barb
+??? 250-
+??? 250-
+??? 250-
+??? 250
+mail from:<a@y>
+??? 250
+rcpt to:<x@y>
+??? 250
+data
+??? 354
+Sender: sender@some.where
+.
+??? 250
+quit
+??? 221
+****
+killdaemon
+# Wait for delivery process
+millisleep 500
+exim -DSERVER=server -DSUBMISSION_OPTIONS=/domain=a.b.c/name=SomeName -bd -oX PORT_D
+****
+client 127.0.0.1 PORT_D
+??? 220
+ehlo rhu.barb
+??? 250-
+??? 250-
+??? 250-
+??? 250
+mail from:<a@y>
+??? 250
+rcpt to:<x@y>
+??? 250
+data
+??? 354
+Sender: sender@some.where
+.
+??? 250
+quit
+??? 221
+****
+killdaemon
+exim -Mvh $msg1
+****
+exim -Mvh $msg2
+****
+exim -Mvh $msg3
+****
+exim -Mvh $msg4
+****
+exim -Mvh $msg5
+****
+exim -Mvh $msg6
+****
+exim -Mvh $msg7
+****
+no_msglog_check
--- /dev/null
+# Rewriting because of DNS lookup
+need_ipv4
+#
+exim -DSERVER=server -bd -oX PORT_D
+****
+exim userx@alias-eximtesthost.test.ex abcd@eximtesthost
+To: userx@alias-eximtesthost.test.ex, abcd@eximtesthost
+
+Test message
+****
+exim -qf
+****
+killdaemon
+exim -DSERVER=server -DNOTDAEMON -qf
+****
--- /dev/null
+# filter tests
+#
+# Create a file that is accessible only to the Exim user
+sudo rm -f DIR/test-private
+touch DIR/test-private
+sudo chown EXIMUSER:EXIMGROUP DIR/test-private
+sudo chmod 0600 DIR/test-private
+#
+exim -bf DIR/aux-fixed/TESTNUM.f-1 </dev/null
+****
+1
+exim -bf DIR/aux-fixed/TESTNUM.f-2 </dev/null
+****
+exim -bF DIR/aux-fixed/TESTNUM.f-3 </dev/null
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 </dev/null
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+****
+# Personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: CALLER@test.ex
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: X-CALLER@test.ex
+****
+# Personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: CALLER@test.ex
+Subject: north circular road
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: userx@test.ex
+Precedence: bulk
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: userx@test.ex
+Precedence: list
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: userx@test.ex
+Precedence: junk
+****
+# Personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: abcdefgh@bzzzt.fix.no
+Auto-Submitted: no
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: userx@test.ex
+Auto-Submitted: auto-replied
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: userx@test.ex
+List-Unsubscribe: xxxx
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: userx@test.ex
+From: abcd-request@some.domain
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: userx@test.ex
+From: owner-abcd@some.domain
+****
+# Not personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: userx@test.ex
+From: The list manager <majordomo@some.domain>
+****
+# Personal
+exim -bf DIR/aux-fixed/TESTNUM.f-4 -f anon@ymous
+To: abc@xyz.com, Philip <CALLER@test.ex>, pqr@xyz.com
+****
+exim -bf DIR/aux-fixed/TESTNUM.f-6 </dev/null
+****
+exim -bf DIR/aux-var/TESTNUM.f-7 </dev/null
+****
+exim -odi userx
+Subject: Test 1
+Remove-this: should get removed
+****
+exim -odi userx abcd usery
+Subject: should fail this
+
+Fail this.
+****
+exim -odi userx
+Subject: should freeze this
+
+Freeze this.
+****
+exim -odi userx
+Subject: reply to this
+
+Reply to this.
+****
+exim -odi filter-pipe
+Subject: should give filter error (1)
+****
+exim -odi filter-file
+Subject: should give filter error (2)
+****
+exim -odi filter-lookup
+Subject: should give filter error (3)
+****
+exim -odi filter-exists
+Subject: should give filter error (4)
+****
+exim -odi filter-readfile
+Subject: should give filter error (5)
+****
+exim -odi filter-run
+Subject: should give filter error (6)
+****
+exim -odi filter-vacation
+Subject: should give rise to vacation message
+****
+exim -bF DIR/aux-fixed/TESTNUM.f-5 </dev/null
+****
+exim -qf
+****
+exim -bpa
+****
+exim -q
+****
+exim -qff
+****
+exim -odi userx
+Subject: should freeze this
+
+Freeze this (second message).
+****
+exim -qqRff userx
+****
+exim -odi readfile
+Should fail ${readfile in filter.
+****
+exim -bF DIR/aux-var/TESTNUM.F <DIR/aux-fixed/TESTNUM.msg
+****
+exim -odi deliverfromfilter
+Test deliver command in system filter
+****
+exim -bF DIR/aux-var/TESTNUM.F
+Test-headers: first one
+From: x@y
+Test-headers: another one
+More-test-headers : yet another one
+Subject: testing, testing
+****
+exim -odi -d-all+route filter-userx
+****
+exim -odi userx
+Subject: should defer this
+
+Defer this.
+****
+# Vacation to a sender in never_mail
+exim -odi -f never_mail@test.ex filter-vacation
+Subject: should give rise to vacation message
+****
+exim -odi filter-stat
+Subject: should give filter error (7)
+****
+no_msglog_check
--- /dev/null
+# Simple ACL ratelimit test
+exim -bh V4NET.9.8.7
+ehlo test.ex
+mail from:<>
+rcpt to:<a@b>
+data
+Here is some data.
+.
+quit
+****
+exim -bh V4NET.9.8.7
+ehlo test.ex
+mail from:<>
+rcpt to:<a@b>
+data
+Here is some data.
+.
+quit
+****
+exim -bh V4NET.9.8.7 -DRRATELIMIT=0/1h/per_conn/strict -DDRATELIMIT=0/1h/per_conn/strict
+ehlo test.ex
+mail from:<>
+rcpt to:<a@b>
+data
+Here is some data.
+.
+quit
+****
+exim -bh V4NET.9.8.7 -DRRATELIMIT=0/1h/per_conn/strict -DDRATELIMIT=0/1h/per_conn/strict
+ehlo test.ex
+mail from:<>
+rcpt to:<a@b>
+data
+Here is some data.
+.
+quit
+****
+exim -bh V4NET.9.8.7 -DRRATELIMIT=0/1h/per_rcpt -DDRATELIMIT=0/1h/per_conn
+ehlo test.ex
+mail from:<>
+rcpt to:<a@b>
+rcpt to:<b@c>
+rcpt to:<e@f>
+data
+Here is some data.
+.
+quit
+****
--- /dev/null
+# redirect and qualify domain
+exim -N -odi r1@test.ex r2@test.ex
+****
+exim -N -DQDG=qualify_domain=qd.text.ex -odi r1@test.ex r2@test.ex
+****
--- /dev/null
+# Checking -oMa etc
+exim -odi -f jc@rome -F 'Julius Caesar' -oMa 1.1.1.1 -oMi 2.2.2.2 -oMr latin -oMs forum.rome -oMt jc44bc userx@test.ex
+This is a test message.
--- /dev/null
+# VRFY & EXPN blocking
+exim -bh 1.1.1.1
+vrfy userx@test.ex
+expn postmaster
+quit
+****
+exim -bh 2.2.2.2
+expn list
+quit
+****
+exim -bs
+expn list
+quit
+****
--- /dev/null
+# VRFY logging failures
+exim -bh 1.1.1.1
+vrfy userx@test.ex
+vrfy junkjunk@test.ex
+quit
--- /dev/null
+# Sender and recipient verification
+exim -bh V4NET.0.0.97
+ehlo exim.test.ex
+mail from:junkjunk@exim.test.ex
+rcpt to:<postmaster@exim.test.ex>
+rset
+mail from:postmaster@exim.test.ex
+rcpt to:postmaster@exim.test.ex
+rcpt to:junkjunk@exim.test.ex
+rcpt to:fail@exim.test.ex
+quit
--- /dev/null
+# RBL blocking (unregistered host)
+exim -bh V4NET.11.12.13
+ehlo exim.test.ex
+mail from:postmaster@exim.test.ex
+rcpt to:<postmaster@exim.test.ex>
+rcpt to:list@exim.test.ex
+data
+test data
+.
+quit
+****
+exim -bh V4NET.11.12.13
+ehlo exim.test.ex
+mail from:<myfriend@there.test.ex>
+rcpt to:list@exim.test.ex
+data
+test data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# MX handling
+1
+exim -bt userx@eximtesthost.test.ex
+****
+1
+exim -bt userx@mxt1.test.ex
+****
+2
+exim -bt userx@mxt2.test.ex
+****
+2
+exim -bt userx@mxt3.test.ex
+****
+1
+exim -bt userx@mxt4.test.ex
+****
+1
+exim -bt userx@mxt5.test.ex
+****
+1
+exim -bt userx@mxt5.test.ex
+****
+exim -bt userx@mxt6.test.ex
+****
+exim -bt userx@mxt7.test.ex
+****
+exim -bt userx@mxt7.test.ex
+****
+exim -bt userx@mxt8.test.ex
+****
+exim -bt userx@mxt8.test.ex
--- /dev/null
+# domain matching in manualroute router
+exim -bt xx@domain1
+****
+exim -bt xx@route1.ex
+****
+exim -bt xx@domain3
--- /dev/null
+# pipe transport
+exim -odi pipe
+Some message text.
+****
+exim -odi prefixed+pipe
+Text
+****
+exim -odi pipe-suffixed
+Text
+****
+exim -odi prefixed+pipe-suffixed
+Text
+****
+exim -DMESSAGE_LOGS=false -odi pipe
+Some message text.
+****
--- /dev/null
+# Sender: header (untrusted caller)
+exim -odi userx@test.ex
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+****
+exim -odi userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+****
+exim -bs -odi
+mail from:userx@cus.cam.ac.uk
+rcpt to:userx@test.ex
+data
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+.
+quit
+****
+exim -odi userx@test.ex
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+****
+exim -odi userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+****
+exim -bs -odi
+mail from:userx@somehost.test.ex
+rcpt to:userx@test.ex
+data
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+.
+quit
+
--- /dev/null
+# Sender: header (trusted caller)
+exim -odi userx@test.ex
+Sender: Sender in original <sender@original.ex>
+
+This is a test message 1.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+Sender: Sender in original <sender@original.ex>
+
+This is a test message 2.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+
+This is a test message 3.
+****
+exim -odi userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+
+This is a test message 4.
+****
+exim -bs -odi
+mail from:userx@cus.cam.ac.uk
+rcpt to:userx@test.ex
+data
+Sender: Sender in original <sender@original.ex>
+
+This is a test message 5.
+.
+quit
+****
+exim -odi userx@test.ex
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message 6.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message 7.
+****
+exim -odi userx@test.ex
+From: From person <from@some.where>
+
+This is a test message 8.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message 9.
+****
+exim -odi userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message 10.
+****
+exim -bs -odi
+mail from:userx@somehost.test.ex
+rcpt to:userx@test.ex
+data
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message 11.
+.
+quit
+
--- /dev/null
+# Domain selection in routers
+exim -odi userx@test.ex
+This is a test message 1.
+****
+exim -odi userx@bad.ex
+This is a test message 2.
+****
+exim -odi userx@badbad.ex
+This is a test message 3.
+****
+exim -odi userx@domain1.ex
+This is a test message 4.
+****
+exim -odi userx@domain4.ex
+This is a test message 5.
+****
+exim -odi userx@domain2.ex
+This is a test message 6.
+****
+exim -odi userx@xx.domain5.ex
+This is a test message 7.
+****
+exim -odi userx@domain6.yy.ex
+This is a test message 8.
--- /dev/null
+# Local part selection in routers
+exim -odi xx99@test.ex
+This is a test message 1.
+****
+exim -odi yy99@test.ex
+This is a test message 2.
+****
+exim -odi '!one@test.ex'
+This is a test message 3.
+****
+exim -odi '!two@test.ex'
+This is a test message 4.
--- /dev/null
+# Aliases including domains
+exim -bt bar@domain1.ex
+****
+2
+exim -bt foobar@domain1.ex
--- /dev/null
+# mx_domains
+exim -bt xxx@ten-1.test.ex
+****
+2
+exim -bt xxx@ten-2.test.ex
+****
--- /dev/null
+# queue_domains and queue_smtp_domains
+exim -odi -N xxx@unknown.test.ex
+****
+exim -odi -N xxx@local.test.ex
+****
+exim -odq userx@myhost.ex
+****
+exim -ql
+****
+exim -q
+****
+exim -odi -N xxx@ten-1.test.ex
+****
+exim -odi -N xxx@ten-2.test.ex
+****
+exim -q -N
+****
+exim -odq xxx@ten-1.test.ex
+First
+****
+exim -odq yyy@ten-1.test.ex
+Two
+****
+exim -qq -N
+****
+exim -odi -N xxx@ten-2.test.ex
+****
+exim -N -M $msg1
+****
+exim -odi -N xxx@local.test.ex
+****
+exim -N -M $msg1
+****
--- /dev/null
+# domain list set to *
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@otherhost.example.com>
+rcpt to:<userx@3rdhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# domain list = !* and other ! and percent_hack domains
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+rcpt to:<userx@3rdhost.example.com>
+data
+.
+quit
+****
+2
+exim -bv userx%myhost.ex@a.test.ex userx%myhost.ex@b.test.ex
+****
+2
+exim -bv userx%myhost.ex@d.test.ex userx%myhost.ex@d.test.ex
+****
+exim -bv userx%myhost.ex@z.test.ex
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist *
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist !*
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist match for host name or IP address
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.5
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.6
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.255.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.255.0.2
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.255.0.3
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.255.0.4
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist @
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist end name match
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.3
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist regex match
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist lsearch
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist matching by network
+exim -bh 1.2.3.4
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 1.2.3.5
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 1.2.4.5
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 1.3.2.4
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 131.111.8.2
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 192.152.98.3
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 192.153.98.4
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Relay by hostlist matching host or network
+exim -bh 1.2.3.4
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 1.2.3.5
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 1.2.4.5
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 1.3.2.4
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 131.111.8.2
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh 192.152.98.3
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.1
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.11.12.13
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.3
+mail from:<userx@somehost.example.com>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@anotherhost.example.com>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# sender_reject (various, including @@)
+exim -bh 1.2.3.4
+mail from:<userx@somehost.example.com>
+rcpt to:<x@test.ex>
+rset
+mail from:<x@b.c>
+rcpt to:<x@test.ex>
+rset
+mail from:<y@b.c>
+rcpt to:<x@test.ex>
+rset
+mail from:<philip@xy.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<quilt@patch.work>
+rcpt to:<x@test.ex>
+rset
+mail from:<philip@a.b.c>
+rcpt to:<x@test.ex>
+rset
+mail from:<xx@abc.def>
+rcpt to:<x@test.ex>
+rset
+mail from:<abc@d.e.f>
+rcpt to:<x@test.ex>
+rset
+mail from:<xyz@d.e.f>
+rcpt to:<x@test.ex>
+rset
+mail from:<yy@abc.def>
+rcpt to:<x@test.ex>
+rset
+mail from:<abc@z.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<cba@z.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<xyz@z.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<12345678@p.q.r>
+rcpt to:<x@test.ex>
+rset
+mail from:<12345678@z.z>
+rcpt to:<x@test.ex>
+rset
+mail from:<1234@p.q.r>
+rcpt to:<x@test.ex>
+rset
+mail from:<1234@m.n.o>
+rcpt to:<userx@test.ex>
+rcpt to:<postmaster@test.ex>
+rcpt to:<postmaster@myhost.ex>
+rset
+mail from:<rr01@a.b.c>
+rcpt to:<userx@test.ex>
+rset
+mail from:<qqq@a.b.c>
+rcpt to:<userx@test.ex>
+rset
+mail from:<qq@a.b.c>
+rcpt to:<userx@test.ex>
+rset
+mail from:<!excl@z.z>
+rcpt to:<userx@test.ex>
+rset
+mail from:<sh#rp@y.p.s>
+rcpt to:<userx@test.ex>
+rset
+mail from:<abc@xx.yy>
+rcpt to:<x@test.ex>
+rset
+mail from:<xyzbc@xx.yy>
+rcpt to:<x@test.ex>
+rset
+mail from:<aabc@xx.yy>
+rcpt to:<x@test.ex>
+rset
+mail from:<x@bb.cc>
+rcpt to:<x@test.ex>
+rset
+mail from:<y@bb.cc>
+rcpt to:<x@test.ex>
+rset
+mail from:<x@bbb.ccc>
+rcpt to:<x@test.ex>
+rset
+mail from:<y@bbb.ccc>
+rcpt to:<x@test.ex>
+rset
+mail from:<z@bbb.ccc>
+rcpt to:<x@test.ex>
+rset
+quit
--- /dev/null
+# recipients_max_reject
+exim -bh V4NET.10.10.10
+mail from:<x@y>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+rcpt to:<a@b>
+data
+quit
+****
--- /dev/null
+# +include_unknown and +ignore_unknown
+exim -bh V4NET.0.0.1
+mail from:<x@y>
+rcpt to:<x@test.ex>
+quit
+****
+exim -bh V4NET.0.0.13
+MAIL FROM:<userx>
+rcpt to:<x@test.ex>
+quit
+****
+exim -bh V4NET.0.0.13
+MAIL FROM:<userx@test.ex>
+rcpt to:<y@test.ex>
+quit
+****
+exim -bh V4NET.0.0.13
+MAIL FROM:<userx@test.ex>
+rcpt to:<z@test.ex>
+quit
+****
+exim -bh V4NET.0.0.13 -DLOG_SELECTOR=log_selector=+unknown_in_list
+MAIL FROM:<userx@test.ex>
+rcpt to:<y@test.ex>
+quit
+****
--- /dev/null
+# helo_verify_hosts and helo_try_verify_hosts
+exim -bh V4NET.0.0.1
+mail from:<userx@cus.cam.ac.uk>
+quit
+****
+exim -bh V4NET.0.0.13
+mail from:<userx@cus.cam.ac.uk>
+rcpt to:<a@b>
+quit
+****
+exim -bh V4NET.0.0.2
+helo [V4NET.0.0.1]
+mail from:<a@b>
+rcpt to:<c@d>
+quit
+****
+exim -bh V4NET.0.0.2
+helo [V4NET.0.0.2]
+mail from:<a@b>
+rcpt to:<c@d>
+quit
+****
+exim -bh V4NET.0.0.1
+helo ten-1.test.ex
+quit
+****
+exim -bh V4NET.0.0.3
+helo ten-3.test.ex
+helo ten-3-alias.test.ex
+helo ten-3xtra.test.ex
+quit
+****
+exim -bh V4NET.0.0.1
+ehlo rhubarb
+quit
+****
+# This is a special IP address that provokes a temporary lookup failure
+exim -DHVH=99.99.99.99 -bh 99.99.99.99
+ehlo rhubarb
+quit
+****
+exim -bh V4NET.0.0.13
+helo [V4NET.0.0.99]
+mail from:<a@b>
+rcpt to:<c@d>
+quit
+****
+exim -bh V4NET.0.0.13
+helo [V4NET.0.0.13]
+mail from:<a@b>
+rcpt to:<c@d>
+quit
+****
+# Temporary lookup when not in helo_try_verify_hosts
+exim -bh 99.99.99.99
+ehlo rhubarb
+mail from:<a@b>
+rcpt to:<c@d>
+quit
+****
--- /dev/null
+# pipe transport not set
+exim -odi pipe
+Some message text.
--- /dev/null
+# autoreply
+exim -odi userx@test.ex
+Subject: first message; non-printer >\r<
+****
+exim -odi userx@test.ex
+Subject: second message
+****
+exim -DONCE=once= -DRETURN=return_message -odi userx@test.ex
+Subject: third message
+
+This has return_message set.
+****
+exim -DONCE= -DRETURN=return_message -DONLY=body_only -odi userx@test.ex
+Subject: third message
+
+This has return_message set with body_only.
+****
+exim -DONCE= -DRETURN=return_message -DONLY=headers_only -odi userx@test.ex
+Subject: third message
+
+This has return_message set with headers_only.
+****
+# This message has a From: line that is syntactically OK when encoded, but
+# which isn't OK when decoded.
+exim -DONCE= -odi userx@test.ex
+Subject: Encoded from
+From: =?ISO-8859-1?Q?CALLER=40test=2Eex?= <CALLER@test.ex>
+
+This is a test for encoded headers ane $reply_address.
+****
+# This message has a From: line that is syntactically bad, and we process it
+# with a filter.
+exim -DONCE= -odi userx-filter@test.ex
+Subject: Bad from
+From: "something" x@y
+
+This is a test for a bad From: line.
+****
--- /dev/null
+# autoreply with once_repeat
+exim -odi userx@test.ex
+Subject: first message
+****
+exim -odi userx@test.ex
+Subject: second message
+****
+sleep 5
+exim -odi userx@test.ex
+Subject: third message
--- /dev/null
+# autoreply from filter (including once_repeat)
+exim -odi userx@test.ex
+Subject: first message
+****
+exim -odi userx@test.ex
+Subject: second message
+****
+sleep 5
+exim -odi userx@test.ex
+Subject: third message
+****
+exim -odi userx@test.ex
+Subject: fourth message
+X-nltest: xxxx
+****
+exim -odi userx@test.ex
+Subject: fifth message
+Reply-to: userx,
+ abcd
+****
--- /dev/null
+# appendfile subdirectory with create_directory
+exim -odi userx@test.ex
+Subject: first message
--- /dev/null
+# appendfile subdirectory without create_directory
+exim -odi userx@test.ex
+Subject: first message
--- /dev/null
+# host_reject !@ : !localhost
+exim -bh 127.0.0.1
+mail from:<x@test.ex>
+rcpt to:<x@test.ex>
+quit
+****
+exim -bh V4NET.10.10.10
+mail from:<x@test.ex>
+rcpt to:<x@test.ex>
+quit
+****
+exim -bh V4NET.0.0.1
+mail from:<x@test.ex>
+rcpt to:<x@test.ex>
+quit
--- /dev/null
+# self and no_more
+#
+exim -d-all+route -bt xx@mxt6.test.ex
+****
+exim -d-all+route -bt myhost.test.ex@mxt1.test.ex
+****
+exim -d-all+route -bt xx@mxt1.test.ex
+****
+2
+exim -d-all+route -bt xx@not.exist
--- /dev/null
+# RBL /warn (default reject)
+exim -bh V4NET.11.12.14
+ehlo exim.test.ex
+mail from:postmaster@exim.test.ex
+rcpt to:<postmaster@exim.test.ex>
+rcpt to:list@exim.test.ex
+data
+test data
+.
+quit
+****
+exim -odi -bs -oMa V4NET.11.12.13
+ehlo exim.test.ex
+mail from:<postmaster@exim.test.ex>
+rcpt to:<userx@exim.test.ex>
+data
+test message data
+.
+quit
+****
+exim -odi -bs -oMa V4NET.11.12.14 -oMi 14.12.11.10.PORT_D
+ehlo exim.test.ex
+mail from:<postmaster@exim.test.ex>
+rcpt to:<postmaster@exim.test.ex>
+rcpt to:<userx@exim.test.ex>
+data
+test message data
+.
+quit
+****
+exim -odi -bs
+mail from:<postmaster@exim.test.ex>
+rcpt to:<userx@exim.test.ex>
+data
+sysmail: yes
+Testing mail from system filter
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# RBL /reject (default warn)
+exim -bh V4NET.11.12.14
+ehlo exim.test.ex
+mail from:postmaster@exim.test.ex
+rcpt to:<postmaster@exim.test.ex>
+rcpt to:list@exim.test.ex
+data
+test data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# Concatenated headers in expansion
+exim -v -odi userx
+X-one: This is the first text.
+To: userx
+X-one: This is the second text.
+From: userx
+X-one: This is the third text.
+Subject: testing, testing
+X-one: This is the fourth text.
+
+This is the message body.
--- /dev/null
+# -bS with -oMr
+exim -bS -odi -oMr testproto
+mail from:userx@cus.cam.ac.uk
+rcpt to:userx@test.ex
+data
+from: me
+To: me
+
+This is some text
+.
+quit
--- /dev/null
+# -bS without -oMr
+exim -bS -odi
+mail from:userx@cus.cam.ac.uk
+rcpt to:userx@test.ex
+data
+from: me
+To: me
+
+This is some text
+.
+quit
--- /dev/null
+# require_files
+exim -d-all+route -bv yes@myhost.test.ex no@myhost.test.ex
--- /dev/null
+# domains, local_parts, sender, and require_files expansions
+2
+exim -d -f abc@d.e.f -bv x@y.z x@smart.domain x@test.ex x@myhost.test.ex
+****
+2
+exim -d -bv x@y.z x@smart.domain x@test.ex x@myhost.test.ex
--- /dev/null
+# verify = header_syntax
+exim -bh V4NET.10.10.10
+mail from:<userx@exim.test.ex>
+rcpt to:<userx@test.ex>
+data
+From: userx@exim.test.ex
+To: userx@test.ex
+Cc: <abcd@x.y.z
+Subject: testing
+
+.
+QUIT
+****
+exim -bh V4NET.10.10.10
+mail from:<userx@exim.test.ex>
+rcpt to:<userx@test.ex>
+data
+From: userx@exim.test.ex
+To: userx@test.ex
+Cc: <abcd@x.y.z
+Resent-From: postmaster@x.y.z
+Reply-To: <xyz@a.b.c.d
+Subject: testing
+
+.
+QUIT
+****
+exim -bh V4NET.10.10.10
+mail from:<userx@exim.test.ex>
+rcpt to:<userx@test.ex>
+data
+From: userx@exim.test.ex
+To: userx@test.ex
+Cc: <abcd@x.y.z>
+Resent-From: postmaster@x.y.z
+Resent-To: <xyz@a.b.c.d
+Subject: testing
+
+.
+QUIT
+****
+exim -bh V4NET.10.10.10
+mail from:<userx@exim.test.ex>
+rcpt to:<userx@test.ex>
+data
+From: userx@exim.test.ex
+To: userx@test.ex
+Cc: "abcd@x.y.z (missing quote),
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses,
+ longlonglonglonglong@long.long.long.long.long.long.long.long,
+ listlistlistlistlist@list.list.list.list.list.list.list.list,
+ ofofofofofofofofofof@of.of.of.of.of.of.of.of.of.of.of.of.of,
+ addressesaddresses@addresses.addresses.addresses.addresses
+.
+QUIT
+****
+exim -bh V4NET.10.10.10
+mail from:<userx@exim.test.ex>
+rcpt to:<userx@test.ex>
+data
+From: userx@exim.test.ex
+To: userx@test.ex
+Cc: <abcd>
+Subject: testing
+
+.
+QUIT
+****
+exim -bh V4NET.10.10.9
+mail from:<userx@exim.test.ex>
+rcpt to:<userx@test.ex>
+data
+From: userx@exim.test.ex
+To: userx@test.ex
+Cc: <abcd>
+Subject: testing
+
+.
+QUIT
+****
+no_msglog_check
--- /dev/null
+# verify = header_sender
+exim -bh V4NET.10.10.10
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+From: userx@test.ex
+Reply-to:
+To: userx@test.ex
+Subject: testing
+
+.
+QUIT
+****
+exim -bh V4NET.10.10.10
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+From: <userx@test.ex
+Reply-to:
+Sender: userx@test.ex
+To: userx@test.ex
+Subject: testing
+
+.
+QUIT
+****
+exim -bh V4NET.10.10.10
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+From: badbad@test.ex
+Sender:
+To: userx@test.ex
+Subject: testing
+
+.
+QUIT
+****
+exim -bh V4NET.10.10.10
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+From: badbad@test.ex, userx@test.ex
+Sender:
+To: userx@test.ex
+Subject: testing
+
+.
+QUIT
+****
+exim -bh V4NET.10.10.10
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+From: defer@test.ex
+To: userx@test.ex
+Subject: testing
+
+.
+QUIT
+****
+no_msglog_check
--- /dev/null
+# hosts_treat_as_local
+1
+exim -bv xx@ten-1.test.ex xx@ten-99.test.ex xx@mxcased.test.ex
--- /dev/null
+# host and domain list caseless matching and HELO checking
+#
+exim -bt userx@test.ex userx@myhost.test.ex
+****
+exim -bh V4NET.0.0.0
+helo @#$%^&*()
+helo abc_xyz
+mail from:<userx@cus.cam.ac.uk>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@else.where>
+rset
+quit
+****
+exim -bh V4NET.0.0.99
+helo @#$%^&*()
+mail from:<root>
+rcpt to:<xx@reLAY.ONE.ex>
+rcpt to:<yy@relay.two.ex>
+quit
+****
+2
+exim -bt abcd@test.ex ABCD@test.ex XYZ@ten-1.test.ex xyz@ten-1.test.ex
+****
--- /dev/null
+# address list !:
+exim -odi userx
+This is a test message
--- /dev/null
+# sender_verify_hosts
+exim -bh V4NET.0.0.1
+mail from:<junk@jink.jonk.test.ex>
+rcpt to:<root@test.ex>
+data
+From: <junk@jink.jonk.test.ex>
+.
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<junk@jink.jonk.test.ex>
+rcpt to:<root@test.ex>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<userx@test.ex>
+rcpt to:<root@test.ex>
+data
+From: <junk@jink.jonk.test.ex>
+.
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<userx@test.ex>
+rcpt to:<root@test.ex>
+data
+From: <userx@test.ex>
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# SMTP incoming timeout + receive_timeout
+1
+3 exim -bs
+****
+1
+3 exim -bs
+mail from: userx@test.ex
+rcpt to: userx@test.ex
+data
+****
+1
+3 exim -bh V4NET.0.0.1
+****
+1
+3 exim -bh V4NET.0.0.1
+mail from:userx@test.ex
+rcpt to:userx@test.ex
+data
+The quick brown fox
+****
+1
+3 exim userx@test.ex
+****
+1
+3 exim userx@test.ex
+The quick brown fox
+jumps over the lazy dog.
+****
+1
+3 exim -bh V4NET.0.0.1
+mail from: userx@test.ex
+rcpt to: verify@test.ex
+****
+2
+3 exim -bS
+****
+2
+3 exim -bS
+mail from: userx@test.ex
+rcpt to: userx@test.ex
+data
--- /dev/null
+# expansion tests in filter testing
+exim -bf DIR/aux-var/TESTNUM.f-1
+From: a@b
+To: c@d
+
+This is the body of the message.
+It has more than one line in it.
+This is the final line.
+****
+1
+exim -bf DIR/aux-var/TESTNUM.f-2 </dev/null
+****
+exim -bf DIR/aux-fixed/TESTNUM.f-3
+From: a@b
+Reply-to: x@y
+Repeated: this header is repeated
+ and continued
+Repeated: this header is repeated
+ and continued
+Repeated: this header is repeated
+ and continued
+Empty:
+Repeated-empty:
+Repeated-empty:
+Repeated-empty:
+Subject: this is the subject
+****
--- /dev/null
+# Reverse lookup failures
+exim -bh V4NET.11.12.13
+mail from:<userx@cam.ac.uk>
+rcpt to:<userx@cam.ac.uk>
+quit
+****
+exim -bh V4NET.0.0.1
+mail from:<userx@cam.ac.uk>
+rcpt to:<userx@cam.ac.uk>
+quit
+****
+sudo exim -odi -oMa V4NET.11.12.13 -bs
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+This is a test message
+.
+quit
+****
+exim -d -bh V4NET.99.99.90
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+rcpt to:<userx@cam.ac.uk>
+quit
+****
+sudo exim -odi -oMa 99.99.99.99 -bs
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+This is a test message
+.
+quit
+****
+sudo exim -odi -oMa V4NET.99.99.96 -bs
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+This is a test message
+.
+quit
+****
--- /dev/null
+# exim quota + warn threshold
+exim -odi userx
+This is a test message
+****
+exim -odi userx
+quota: 0
+threshold: 10
+This is a test message
+****
+exim -odi userx
+quota: 10K
+threshold: 900
+A test message
+****
+exim -odi userx
+quota: 2200
+threshold: 90%
+This is a test message
+****
+write test-data 100x60
+++++
+****
+exim -odi userx <test-data
+****
+exim -odi userx <test-data
+****
+millisleep 500
+exim -odi usery
+quota: 100
+threshold: 10
+This is a test message
+****
+exim -odi userz
+threshold: 330
+****
--- /dev/null
+# headers_add, headers_remove (fail, router only)
+exim -odi userx@test.ex
+Subject: First message subject
+****
+exim -odi userx@test.ex
+X-RBL-Warning: A faked up RBL header
+Subject: Second message subject
--- /dev/null
+# headers_add, headers_remove (blank, router and transport)
+exim -odi userx@test.ex
+Subject: First message subject
+****
+exim -odi userx@test.ex
+X-RBL-Warning: A faked up RBL header
+Subject: Second message subject
+Tadd: to be replaced
--- /dev/null
+# warning messages
+need_ipv4
+#
+exim -odi userx@test.ex defer@test.ex
+Test message
+****
+# -Tqt 11s/ sets the queue time for the message to 11s when deciding
+# on warnings.
+exim -Tqt 11s/ -odi -qf
+****
+exim -odi defer@test.ex defer@another.test.ex
+Test message
+****
+exim -Tqt 20s/13s/ -odi -qf
+****
+exim -odi xxxx@some.domain
+Test message
+****
+exim -Tqt 41s/15s/8s/ -odi -qf
+****
+exim -odi yyyy@connection.refused
+Nother test
+****
+exim -Tqt 42s/16s/9s/5s/ -odi -q
+****
+sleep 3
+exim -Tqt 42s/16s/9s/5s/ -odi -q
+****
+# Now test with custom file
+exim -Tqt 12m/45s/45s/11s/ -DWMF=warn_message_file=DIR/aux-fixed/TESTNUM.wmf -odi -qf
+****
+# Remove the previous 4 messages
+exim -Mrm $msg1 $msg2 $msg3 $msg4
+****
+# Check no warnings for non-warn domain
+exim -odi defer@another.test.ex
+Testing
+****
+exim -Tqt 20s/ -odi -qf
+****
+no_msglog_check
--- /dev/null
+# retry data
+exim -odi userx@far.away.ex
+Test message
+****
+dump retry
+sleep 1
+exim -odi -q
+****
+dump retry
+sleep 3
+exim -odi -q
+****
+dump retry
+exim -brt x@dark.star.ex
+****
+exim -brt x@a.b.c
+****
+exim -brt x@x.y.z
+****
+exim -brt x@9CDE.ex
+****
+exim -brt x@Q.abcd.ex
+****
+exim -brt x@literal.ex
+****
+exim -brt x@look.up
+****
+exim -brt x@[127.0.0.1]
+****
+exim -brt x@primary.test.ex
+****
+exim -brt x@rcpt4xx.test.ex rcpt_4xx
+****
+exim -brt x@rcpt45x.test.ex rcpt_45x
+****
+exim -brt x@rcpt463.test.ex rcpt_463
+****
+exim -f "" -brt x@Q.abcd.ex
+****
+exim -f "d@e.f" -brt x@Q.abcd.ex
+****
--- /dev/null
+# appendfile body escapes (including "from hack" and "SMTP dot" tests)
+need_ipv4
+#
+exim -odi userx@test.ex
+Test message
+From the deep abyss
+From
+out of nowhere
+Fromage please
+from is case sensitive
+From: is how headers start
+****
+exim -odi usery@test.ex
+Test message
+From the deep abyss
+From
+out of nowhere
+Fromage please
+from is case sensitive
+From: is how headers start
+****
+write test-data 128x64
+++++
+From Bohemia's woods and fields
+****
+exim -odi userx@test.ex <test-data
+****
+write test-data 127x64 1x63
+++++
+From Bohemia's woods and fields
+****
+exim -odi userx@test.ex <test-data
+****
+exim -odi userz@test.ex
+A message containing
+. a line starting with a dot
+.. and one starting with two dots
+From should not be escaped as this is
+going to be delivered using BSMTP.
+****
+exim -odi userw@test.ex
+A message containing
+. a line starting with a dot
+.. and one starting with two dots
+From should not be escaped as this is
+going to be delivered using BSMTP,
+via a filter.
+****
+server PORT_S
+220 ESMTP
+EHLO
+250 OK
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+DATA
+354 Send data
+.
+250 OK
+QUIT
+250 OK
+****
+exim -oi -odi userx@domain.com
+.dotheader: This is perfectly legal
+
+A message containing
+. a line starting with a dot
+.. and one starting with two dots
+.
+The previous one contains only a dot.
+****
+write test-data 127x64 1x62
+++++
+Frost isn't From.
+****
+exim -odi userx@test.ex <test-data
+****
+exim -odi userx@test.ex
+Last line ending without a newline and with a partial match:
+From\NONL\
+****
+exim -odi filter-userx@test.ex
+Test message
+From the deep abyss
+From
+out of nowhere
+Fromage please
+from is case sensitive
+From: is how headers start
+****
+exim -odi filter-userx@test.ex
+Last line ending without a newline and with a partial match:
+From\NONL\
+****
+exim -odi userx@test.ex
+Last line ending without a newline and being a single dot:
+.\NONL\
+****
+exim -odi mmdf-userx@test.ex
+Line consisting of four ^A characters
+\ 1\ 1\ 1\ 1
+That should get escaped by adding a space.
+****
+exim -odi batch-userx@test.ex batch-userz@test.ex
+A message containing
+. a line starting with a dot
+.. and one starting with two dots
+From should be escaped as this is
+going to be delivered using batch. The dots
+shouldn't be escaped.
+****
+exim -odi userx@test.ex
+Subject: From
+
+From is the very first word of the message.
+From starts the second line.
+****
+server PORT_S
+220 ESMTP
+EHLO
+250 OK
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+DATA
+354 Send data
+.
+250 OK
+QUIT
+250 OK
+****
+exim -oi -odi userx@filtered.com
+.dotheader: This is perfectly legal
+
+A message containing
+. a line starting with a dot
+.. and one starting with two dots
+.
+The previous one contains only a dot.
+****
--- /dev/null
+# pipe body escapes (including "from hack" and "SMTP dot" tests)
+need_ipv4
+#
+exim -odi userx@test.ex
+Test message
+From the deep abyss
+From
+out of nowhere
+Fromage please
+from is case sensitive
+From: is how headers start
+****
+write test-data 128x64
+++++
+From Bohemia's woods and fields
+****
+exim -odi userx@test.ex <test-data
+****
+write test-data 127x64 1x63
+++++
+From Bohemia's woods and fields
+****
+exim -odi userx@test.ex <test-data
+****
+exim -odi userz@test.ex
+A message containing
+. a line starting with a dot
+.. and one starting with two dots
+From should not be escaped as this is
+going to be delivered using BSMTP.
+****
+server PORT_S
+220 ESMTP
+EHLO
+250 OK
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+DATA
+354 Send data
+.
+250 OK
+QUIT
+250 OK
+****
+exim -oi -odi userx@domain.com
+.dotheader: This is perfectly legal
+
+A message containing
+. a line starting with a dot
+.. and one starting with two dots
+.
+The previous one contains only a dot.
+****
+write test-data 127x64 1x62
+++++
+Frost isn't From.
+****
+exim -odi userx@test.ex <test-data
+****
+exim -odi userx@test.ex
+Last line ending without a newline and with a partial match:
+From\NONL\
+****
+exim -odi filter-userx@test.ex
+Test message
+From the deep abyss
+From
+out of nowhere
+Fromage please
+from is case sensitive
+From: is how headers start
+****
+exim -odi filter-userx@test.ex
+Last line ending without a newline and with a partial match:
+From\NONL\
+****
+exim -odi userx@test.ex
+Last line ending without a newline and being a single dot:
+.\NONL\
+****
+exim -odi mmdf-userx@test.ex
+Line consisting of four ^A characters
+\ 1\ 1\ 1\ 1
+That should get escaped by adding a space.
+****
+exim -odi userx@test.ex
+Subject: From
+
+From is the very first word of the message.
+From starts the second line.
--- /dev/null
+# appendfile auto format recognition
+exim -odi userx@test.ex
+Initial test message, no prefix.
+****
+exim -odi userx@test.ex
+Second test message, no prefix.
+****
+exim -odi bsmtp_usery@test.ex
+Test message with bsmtp_ prefix
+****
+exim -odi usery@test.ex
+Second test message, no prefix.
+****
+exim -odi mmdf_userz@test.ex
+Test message with mmdf_ prefix
+****
+exim -odi userz@test.ex
+Second test message, no prefix.
+****
+exim -odi userz@test.ex
+Second test message, no prefix.
+****
+write test-mail/tpmissing
+tpmissing text at mailbox start
+****
+exim -odi tpmissing@test.ex
+Test message.
+****
+write test-mail/undefined
+undefined text at mailbox start
+****
+exim -odi undefined@test.ex
+Test message.
+****
+exim -odi batch-userx
+Test to batch-userx
+****
+exim -odi batch-userx batch-usery
+Test to batch-userx and batch-usery
+****
--- /dev/null
+# redirect router no_rewrite / no transport / :defer: etc
+exim -odi '"xyz@x.y.z"@test.ex'
+Message sent to "xyz@x.y.z"@test.ex.
+****
+exim -odi '"abc@x.y.z"@test.ex'
+Message sent to "abc@x.y.z"@test.ex.
+****
+exim -odi '":blackhole:"@special'
+Message sent to ":blackhole:"@special
+****
+exim -odi '":defer: defer message"@special'
+Message sent to ":defer: defer message"@special
+****
+exim -odi '":fail: fail message"@special'
+Message sent to ":fail: fail message"@special
+****
--- /dev/null
+# source routed addresses - collapsing
+exim -bt @exim.org:xxx@test.ex '@x.y,@a.b:xxx@test.ex' 'abcde <@x.y,@a.b:xxx@test.ex>'
+****
+exim -odi @x.y,@r.s:a.b@p.q
+To: comment <@x.y,@r.s:a.b@p.q>
+****
+exim -odi @x.y:mmm@ten-1
+To: You <@x.y:mmm@ten-1>
+****
--- /dev/null
+# aliasfile with transport + smartuser with new address and transport
+exim -odi firstuser
+Delivered to firstuser
+.
+****
+exim -odi seconduser@test.ex
+Delivered to seconduser
+.
+****
+exim -odi postmaster
+Delivered to default
+.
+****
--- /dev/null
+# SMTP outgoing timeout
+need_ipv4
+#
+server PORT_S
+220 ESMTP
+EHLO
+*sleep 4
+****
+exim -odi userx@domain1.com
+.
+****
+sleep 1
+server PORT_S
+220 ESMTP
+EHLO
+250 OK
+MAIL FROM
+*sleep 4
+****
+exim -odi userx@domain2.com
+.
+****
--- /dev/null
+# create_file = belowhome
+mkdir test-empty
+ln -s ../test-empty test-mail/link
+exim -odi userx usery userz sub1 sub2 sub3
+To: userx
+
+Testing.
+****
+no_message_check
--- /dev/null
+# remote_sort_domains
+#
+exim -odi -N xx@ten-1.net xx@black.com xx@other.edu xx@myhost.com
+****
+exim -odi -N xx@myhost.com xx@ten-1.net xx@other.edu xx@black.com
+****
--- /dev/null
+# fallback hosts
+need_ipv4
+#
+exim -odi xx@non-exist.test.ex
+****
--- /dev/null
+# one_time in aliasfile
+exim -odi first
+****
+exim -qf
+****
--- /dev/null
+# check_ancestor, errors_to, headers_{add,remove} in redirect router
+exim -odi userx
+Remove: This header should go
+****
+exim -odi Philip
+Remove: This header should go
+****
+exim -odi philip
+Remove: This header should go
+****
--- /dev/null
+# pipe and file deliveries from aliasfile
+exim -odi pipe
+Message to pipe.
+****
+exim -odi file
+Message to file.
+****
--- /dev/null
+# one_time in forwardfile
+exim -odi first
+****
+exim -qf
+****
--- /dev/null
+# pipe, file, and autoreply deliveries from forwardfile
+exim -odi pipe
+Message to pipe.
+****
+exim -odi file
+Message to file.
+****
+exim -odi reply
+Message to reply.
+****
+exim -odi reply
+Message to reply.
+****
--- /dev/null
+# forwardfile: uid and home directory tests
+exim -odi userx
+Message to userx.
+****
+exim -odi one-userx
+Message to one-userx.
+****
+exim -odi two-userx
+Message to two-userx.
+****
+exim -odi three-userx
+Message to three-userx.
+****
--- /dev/null
+# unseen (including address_data passing)
+exim -odi dcopy defer
+Message sent to dcopy.
+****
+exim -odi acopy defer
+Message sent to acopy.
+****
+exim -qf
+****
--- /dev/null
+# host in MX list more than once
+#
+# The different domains produce the same list of hosts, but in different
+# orders, to simulate a real nameserver's round robinning.
+#
+exim -d-all+route -bv xxx@mxt9.test.ex
+****
+exim -d-all+route -bv xxx@mxt9a.test.ex
+****
+exim -d-all+route -bv xxx@mxt9b.test.ex
+****
--- /dev/null
+# first_delivery and queue_running
+exim -odi userx
+****
+exim -M $msg1
+****
+exim -qf
+****
--- /dev/null
+# -R and -S
+exim -odq postmaster
+****
+exim -Rpostmaster
+****
+exim -Rf postmaster
+****
+exim -R postmaster
+****
+exim -S postmaster
+****
+exim -S CALLER
+****
+exim -Rr p[aeiou]st
+****
+exim -Sr 'CALLER|^post'
+****
+exim -qqSr 'CALLER'
+****
+exim -qSr '^10'
+****
+exim -R postmaster -S postmaster
+****
+exim -S CALLER -R master
+****
--- /dev/null
+# $message_age
+exim -odi postmaster
+****
+exim -odi -qf
+****
+sleep 3
+exim -odi -qf
+****
--- /dev/null
+# Sender verification (envelope and header)
+exim -bh 127.0.0.1
+mail from:<unknown@test.ex>
+rcpt to:<userx@test.ex>
+rset
+mail from:<userx@unknown.dom.ain>
+rcpt to:<userx@test.ex>
+rset
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+From: unknown@test.ex
+.
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+From: <>
+.
+mail from:<defer@test.ex>
+rcpt to:<userx@test.ex>
+rset
+mail from:<userx@test.ex>
+rcpt to:<userx@test.ex>
+data
+from: <defer@test.ex>
+.
+quit
+****
--- /dev/null
+# msglog frozen messages
+exim -odi freeze
+****
+exim -odi -f '<>' unknown
+****
+sudo exim -odi -f '<>' unknown
+****
--- /dev/null
+# lookup_open_max
+2
+exim -d -bt x y z
+****
--- /dev/null
+# host lookup failure error message
+exim -bh V4NET.0.0.97
+mail from:<userx@test.ex>
+rcpt to:<userx@external.test.ex>
+rset
+mail from:<userx@test.ex>
+rcpt to:<userx@external.test.ex>
+quit
+****
--- /dev/null
+# very long header line
+exim -odq userx@test.ex
+From: userx@test.ex
+To: 000@test.ex, 001@test.ex, 002@test.ex, 003@test.ex, 004@test.ex,
+ 005@test.ex, 006@test.ex, 007@test.ex, 008@test.ex, 009@test.ex,
+ 010@test.ex, 011@test.ex, 012@test.ex, 013@test.ex, 014@test.ex,
+ 015@test.ex, 016@test.ex, 017@test.ex, 018@test.ex, 019@test.ex,
+ 020@test.ex, 021@test.ex, 022@test.ex, 023@test.ex, 024@test.ex,
+ 025@test.ex, 026@test.ex, 027@test.ex, 028@test.ex, 029@test.ex,
+ 030@test.ex, 031@test.ex, 032@test.ex, 033@test.ex, 034@test.ex,
+ 035@test.ex, 036@test.ex, 037@test.ex, 038@test.ex, 039@test.ex,
+ 040@test.ex, 041@test.ex, 042@test.ex, 043@test.ex, 044@test.ex,
+ 045@test.ex, 046@test.ex, 047@test.ex, 048@test.ex, 049@test.ex,
+ 050@test.ex, 051@test.ex, 052@test.ex, 053@test.ex, 054@test.ex,
+ 055@test.ex, 056@test.ex, 057@test.ex, 058@test.ex, 059@test.ex,
+ 060@test.ex, 061@test.ex, 062@test.ex, 063@test.ex, 064@test.ex,
+ 065@test.ex, 066@test.ex, 067@test.ex, 068@test.ex, 069@test.ex,
+ 070@test.ex, 071@test.ex, 072@test.ex, 073@test.ex, 074@test.ex,
+ 075@test.ex, 076@test.ex, 077@test.ex, 078@test.ex, 079@test.ex,
+ 080@test.ex, 081@test.ex, 082@test.ex, 083@test.ex, 084@test.ex,
+ 085@test.ex, 086@test.ex, 087@test.ex, 088@test.ex, 089@test.ex,
+ 090@test.ex, 091@test.ex, 092@test.ex, 093@test.ex, 094@test.ex,
+ 095@test.ex, 096@test.ex, 097@test.ex, 098@test.ex, 099@test.ex,
+ 100@test.ex, 101@test.ex, 102@test.ex, 103@test.ex, 104@test.ex,
+ 105@test.ex, 106@test.ex, 107@test.ex, 108@test.ex, 109@test.ex,
+ 110@test.ex, 111@test.ex, 112@test.ex, 113@test.ex, 114@test.ex,
+ 115@test.ex, 116@test.ex, 117@test.ex, 118@test.ex, 119@test.ex,
+ 120@test.ex, 121@test.ex, 122@test.ex, 123@test.ex, 124@test.ex,
+ 125@test.ex, 126@test.ex, 127@test.ex, 128@test.ex, 129@test.ex,
+ 130@test.ex, 131@test.ex, 132@test.ex, 133@test.ex, 134@test.ex,
+ 135@test.ex, 136@test.ex, 137@test.ex, 138@test.ex, 139@test.ex,
+ 140@test.ex, 141@test.ex, 142@test.ex, 143@test.ex, 144@test.ex,
+ 145@test.ex, 146@test.ex, 147@test.ex, 148@test.ex, 149@test.ex,
+ 150@test.ex, 151@test.ex, 152@test.ex, 153@test.ex, 154@test.ex,
+ 155@test.ex, 156@test.ex, 157@test.ex, 158@test.ex, 159@test.ex,
+ 160@test.ex, 161@test.ex, 162@test.ex, 163@test.ex, 164@test.ex,
+ 165@test.ex, 166@test.ex, 167@test.ex, 168@test.ex, 169@test.ex,
+ 170@test.ex, 171@test.ex, 172@test.ex, 173@test.ex, 174@test.ex,
+ 175@test.ex, 176@test.ex, 177@test.ex, 178@test.ex, 179@test.ex,
+ 180@test.ex, 181@test.ex, 182@test.ex, 183@test.ex, 184@test.ex,
+ 185@test.ex, 186@test.ex, 187@test.ex, 188@test.ex, 189@test.ex,
+ 190@test.ex, 191@test.ex, 192@test.ex, 193@test.ex, 194@test.ex,
+ 195@test.ex, 196@test.ex, 197@test.ex, 198@test.ex, 199@test.ex,
+ 200@test.ex, 201@test.ex, 202@test.ex, 203@test.ex, 204@test.ex,
+ 205@test.ex, 206@test.ex, 207@test.ex, 208@test.ex, 209@test.ex,
+ 210@test.ex, 211@test.ex, 212@test.ex, 213@test.ex, 214@test.ex,
+ 215@test.ex, 216@test.ex, 217@test.ex, 218@test.ex, 219@test.ex,
+ 220@test.ex, 221@test.ex, 222@test.ex, 223@test.ex, 224@test.ex,
+ 225@test.ex, 226@test.ex, 227@test.ex, 228@test.ex, 229@test.ex,
+ 230@test.ex, 231@test.ex, 232@test.ex, 233@test.ex, 234@test.ex,
+ 235@test.ex, 236@test.ex, 237@test.ex, 238@test.ex, 239@test.ex,
+ 240@test.ex, 241@test.ex, 242@test.ex, 243@test.ex, 244@test.ex,
+ 245@test.ex, 246@test.ex, 247@test.ex, 248@test.ex, 249@test.ex,
+ 250@test.ex, 251@test.ex, 252@test.ex, 253@test.ex, 254@test.ex,
+ 255@test.ex, 256@test.ex, 257@test.ex, 258@test.ex, 259@test.ex,
+ 260@test.ex, 261@test.ex, 262@test.ex, 263@test.ex, 264@test.ex,
+ 265@test.ex, 266@test.ex, 267@test.ex, 268@test.ex, 269@test.ex,
+ 270@test.ex, 271@test.ex, 272@test.ex, 273@test.ex, 274@test.ex,
+ 275@test.ex, 276@test.ex, 277@test.ex, 278@test.ex, 279@test.ex,
+ 280@test.ex, 281@test.ex, 282@test.ex, 283@test.ex, 284@test.ex,
+ 285@test.ex, 286@test.ex, 287@test.ex, 288@test.ex, 289@test.ex,
+ 290@test.ex, 291@test.ex, 292@test.ex, 293@test.ex, 294@test.ex,
+ 295@test.ex, 296@test.ex, 297@test.ex, 298@test.ex, 299@test.ex,
+ 300@test.ex, 301@test.ex, 302@test.ex, 303@test.ex, 304@test.ex,
+ 305@test.ex, 306@test.ex, 307@test.ex, 308@test.ex, 309@test.ex,
+ 310@test.ex, 311@test.ex, 312@test.ex, 313@test.ex, 314@test.ex,
+ 315@test.ex, 316@test.ex, 317@test.ex, 318@test.ex, 319@test.ex,
+ 320@test.ex, 321@test.ex, 322@test.ex, 323@test.ex, 324@test.ex,
+ 325@test.ex, 326@test.ex, 327@test.ex, 328@test.ex, 329@test.ex,
+ 330@test.ex, 331@test.ex, 332@test.ex, 333@test.ex, 334@test.ex,
+ 335@test.ex, 336@test.ex, 337@test.ex, 338@test.ex, 339@test.ex,
+ 340@test.ex, 341@test.ex, 342@test.ex, 343@test.ex, 344@test.ex,
+ 345@test.ex, 346@test.ex, 347@test.ex, 348@test.ex, 349@test.ex,
+ 350@test.ex, 351@test.ex, 352@test.ex, 353@test.ex, 354@test.ex,
+ 355@test.ex, 356@test.ex, 357@test.ex, 358@test.ex, 359@test.ex,
+ 360@test.ex, 361@test.ex, 362@test.ex, 363@test.ex, 364@test.ex,
+ 365@test.ex, 366@test.ex, 367@test.ex, 368@test.ex, 369@test.ex,
+ 370@test.ex, 371@test.ex, 372@test.ex, 373@test.ex, 374@test.ex,
+ 375@test.ex, 376@test.ex, 377@test.ex, 378@test.ex, 379@test.ex,
+ 380@test.ex, 381@test.ex, 382@test.ex, 383@test.ex, 384@test.ex,
+ 385@test.ex, 386@test.ex, 387@test.ex, 388@test.ex, 389@test.ex,
+ 390@test.ex, 391@test.ex, 392@test.ex, 393@test.ex, 394@test.ex,
+ 395@test.ex, 396@test.ex, 397@test.ex, 398@test.ex, 399@test.ex,
+ 400@test.ex, 401@test.ex, 402@test.ex, 403@test.ex, 404@test.ex,
+ 405@test.ex, 406@test.ex, 407@test.ex, 408@test.ex, 409@test.ex,
+ 410@test.ex, 411@test.ex, 412@test.ex, 413@test.ex, 414@test.ex,
+ 415@test.ex, 416@test.ex, 417@test.ex, 418@test.ex, 419@test.ex,
+ 420@test.ex, 421@test.ex, 422@test.ex, 423@test.ex, 424@test.ex,
+ 425@test.ex, 426@test.ex, 427@test.ex, 428@test.ex, 429@test.ex,
+ 430@test.ex, 431@test.ex, 432@test.ex, 433@test.ex, 434@test.ex,
+ 435@test.ex, 436@test.ex, 437@test.ex, 438@test.ex, 439@test.ex,
+ 440@test.ex, 441@test.ex, 442@test.ex, 443@test.ex, 444@test.ex,
+ 445@test.ex, 446@test.ex, 447@test.ex, 448@test.ex, 449@test.ex,
+ 450@test.ex, 451@test.ex, 452@test.ex, 453@test.ex, 454@test.ex,
+ 455@test.ex, 456@test.ex, 457@test.ex, 458@test.ex, 459@test.ex,
+ 460@test.ex, 461@test.ex, 462@test.ex, 463@test.ex, 464@test.ex,
+ 465@test.ex, 466@test.ex, 467@test.ex, 468@test.ex, 469@test.ex,
+ 470@test.ex, 471@test.ex, 472@test.ex, 473@test.ex, 474@test.ex,
+ 475@test.ex, 476@test.ex, 477@test.ex, 478@test.ex, 479@test.ex,
+ 480@test.ex, 481@test.ex, 482@test.ex, 483@test.ex, 484@test.ex,
+ 485@test.ex, 486@test.ex, 487@test.ex, 488@test.ex, 489@test.ex,
+ 490@test.ex, 491@test.ex, 492@test.ex, 493@test.ex, 494@test.ex,
+ 495@test.ex, 496@test.ex, 497@test.ex, 498@test.ex, 499@test.ex,
+ 500@test.ex, 501@test.ex, 502@test.ex, 503@test.ex, 504@test.ex,
+ 505@test.ex, 506@test.ex, 507@test.ex, 508@test.ex, 509@test.ex,
+ 510@test.ex, 511@test.ex, 512@test.ex, 513@test.ex, 514@test.ex,
+ 515@test.ex, 516@test.ex, 517@test.ex, 518@test.ex, 519@test.ex,
+ 520@test.ex, 521@test.ex, 522@test.ex, 523@test.ex, 524@test.ex,
+ 525@test.ex, 526@test.ex, 527@test.ex, 528@test.ex, 529@test.ex,
+ 530@test.ex, 531@test.ex, 532@test.ex, 533@test.ex, 534@test.ex,
+ 535@test.ex, 536@test.ex, 537@test.ex, 538@test.ex, 539@test.ex,
+ 540@test.ex, 541@test.ex, 542@test.ex, 543@test.ex, 544@test.ex,
+ 545@test.ex, 546@test.ex, 547@test.ex, 548@test.ex, 549@test.ex,
+ 550@test.ex, 551@test.ex, 552@test.ex, 553@test.ex, 554@test.ex,
+ 555@test.ex, 556@test.ex, 557@test.ex, 558@test.ex, 559@test.ex,
+ 560@test.ex, 561@test.ex, 562@test.ex, 563@test.ex, 564@test.ex,
+ 565@test.ex, 566@test.ex, 567@test.ex, 568@test.ex, 569@test.ex,
+ 570@test.ex, 571@test.ex, 572@test.ex, 573@test.ex, 574@test.ex,
+ 575@test.ex, 576@test.ex, 577@test.ex, 578@test.ex, 579@test.ex,
+ 580@test.ex, 581@test.ex, 582@test.ex, 583@test.ex, 584@test.ex,
+ 585@test.ex, 586@test.ex, 587@test.ex, 588@test.ex, 589@test.ex,
+ 590@test.ex, 591@test.ex, 592@test.ex, 593@test.ex, 594@test.ex,
+ 595@test.ex, 596@test.ex, 597@test.ex, 598@test.ex, 599@test.ex,
+ 600@test.ex, 601@test.ex, 602@test.ex, 603@test.ex, 604@test.ex,
+ 605@test.ex, 606@test.ex, 607@test.ex, 608@test.ex, 609@test.ex,
+ 610@test.ex, 611@test.ex, 612@test.ex, 613@test.ex, 614@test.ex,
+ 615@test.ex, 616@test.ex, 617@test.ex, 618@test.ex, 619@test.ex,
+ 620@test.ex, 621@test.ex, 622@test.ex, 623@test.ex, 624@test.ex,
+ 625@test.ex, 626@test.ex, 627@test.ex, 628@test.ex, 629@test.ex,
+ 630@test.ex, 631@test.ex, 632@test.ex, 633@test.ex, 634@test.ex,
+ 635@test.ex, 636@test.ex, 637@test.ex, 638@test.ex, 639@test.ex,
+ 640@test.ex, 641@test.ex, 642@test.ex, 643@test.ex, 644@test.ex,
+ 645@test.ex, 646@test.ex, 647@test.ex, 648@test.ex, 649@test.ex,
+ 650@test.ex, 651@test.ex, 652@test.ex, 653@test.ex, 654@test.ex,
+ 655@test.ex, 656@test.ex, 657@test.ex, 658@test.ex, 659@test.ex,
+ 660@test.ex, 661@test.ex, 662@test.ex, 663@test.ex, 664@test.ex,
+ 665@test.ex, 666@test.ex, 667@test.ex, 668@test.ex, 669@test.ex,
+ 670@test.ex, 671@test.ex, 672@test.ex, 673@test.ex, 674@test.ex,
+ 675@test.ex, 676@test.ex, 677@test.ex, 678@test.ex, 679@test.ex,
+ 680@test.ex, 681@test.ex, 682@test.ex, 683@test.ex, 684@test.ex,
+ 685@test.ex, 686@test.ex, 687@test.ex, 688@test.ex, 689@test.ex,
+ 690@test.ex, 691@test.ex, 692@test.ex, 693@test.ex, 694@test.ex,
+ 695@test.ex, 696@test.ex, 697@test.ex, 698@test.ex, 699@test.ex,
+ 700@test.ex, 701@test.ex, 702@test.ex, 703@test.ex, 704@test.ex,
+ 705@test.ex, 706@test.ex, 707@test.ex, 708@test.ex, 709@test.ex,
+ 710@test.ex, 711@test.ex, 712@test.ex, 713@test.ex, 714@test.ex,
+ 715@test.ex, 716@test.ex, 717@test.ex, 718@test.ex, 719@test.ex,
+ 720@test.ex, 721@test.ex, 722@test.ex, 723@test.ex, 724@test.ex,
+ 725@test.ex, 726@test.ex, 727@test.ex, 728@test.ex, 729@test.ex,
+ 730@test.ex, 731@test.ex, 732@test.ex, 733@test.ex, 734@test.ex,
+ 735@test.ex, 736@test.ex, 737@test.ex, 738@test.ex, 739@test.ex,
+ 740@test.ex, 741@test.ex, 742@test.ex, 743@test.ex, 744@test.ex,
+ 745@test.ex, 746@test.ex, 747@test.ex, 748@test.ex, 749@test.ex,
+ 750@test.ex, 751@test.ex, 752@test.ex, 753@test.ex, 754@test.ex,
+ 755@test.ex, 756@test.ex, 757@test.ex, 758@test.ex, 759@test.ex,
+ 760@test.ex, 761@test.ex, 762@test.ex, 763@test.ex, 764@test.ex,
+ 765@test.ex, 766@test.ex, 767@test.ex, 768@test.ex, 769@test.ex,
+ 770@test.ex, 771@test.ex, 772@test.ex, 773@test.ex, 774@test.ex,
+ 775@test.ex, 776@test.ex, 777@test.ex, 778@test.ex, 779@test.ex,
+ 780@test.ex, 781@test.ex, 782@test.ex, 783@test.ex, 784@test.ex,
+ 785@test.ex, 786@test.ex, 787@test.ex, 788@test.ex, 789@test.ex,
+ 790@test.ex, 791@test.ex, 792@test.ex, 793@test.ex, 794@test.ex,
+ 795@test.ex, 796@test.ex, 797@test.ex, 798@test.ex, 799@test.ex,
+ 800@test.ex, 801@test.ex, 802@test.ex, 803@test.ex, 804@test.ex,
+ 805@test.ex, 806@test.ex, 807@test.ex, 808@test.ex, 809@test.ex,
+ 810@test.ex, 811@test.ex, 812@test.ex, 813@test.ex, 814@test.ex,
+ 815@test.ex, 816@test.ex, 817@test.ex, 818@test.ex, 819@test.ex,
+ 820@test.ex, 821@test.ex, 822@test.ex, 823@test.ex, 824@test.ex,
+ 825@test.ex, 826@test.ex, 827@test.ex, 828@test.ex, 829@test.ex,
+ 830@test.ex, 831@test.ex, 832@test.ex, 833@test.ex, 834@test.ex,
+ 835@test.ex, 836@test.ex, 837@test.ex, 838@test.ex, 839@test.ex,
+ 840@test.ex, 841@test.ex, 842@test.ex, 843@test.ex, 844@test.ex,
+ 845@test.ex, 846@test.ex, 847@test.ex, 848@test.ex, 849@test.ex,
+ 850@test.ex, 851@test.ex, 852@test.ex, 853@test.ex, 854@test.ex,
+ 855@test.ex, 856@test.ex, 857@test.ex, 858@test.ex, 859@test.ex,
+ 860@test.ex, 861@test.ex, 862@test.ex, 863@test.ex, 864@test.ex,
+ 865@test.ex, 866@test.ex, 867@test.ex, 868@test.ex, 869@test.ex,
+ 870@test.ex, 871@test.ex, 872@test.ex, 873@test.ex, 874@test.ex,
+ 875@test.ex, 876@test.ex, 877@test.ex, 878@test.ex, 879@test.ex,
+ 880@test.ex, 881@test.ex, 882@test.ex, 883@test.ex, 884@test.ex,
+ 885@test.ex, 886@test.ex, 887@test.ex, 888@test.ex, 889@test.ex,
+ 890@test.ex, 891@test.ex, 892@test.ex, 893@test.ex, 894@test.ex,
+ 895@test.ex, 896@test.ex, 897@test.ex, 898@test.ex, 899@test.ex,
+ 900@test.ex, 901@test.ex, 902@test.ex, 903@test.ex, 904@test.ex,
+ 905@test.ex, 906@test.ex, 907@test.ex, 908@test.ex, 909@test.ex,
+ 910@test.ex, 911@test.ex, 912@test.ex, 913@test.ex, 914@test.ex,
+ 915@test.ex, 916@test.ex, 917@test.ex, 918@test.ex, 919@test.ex,
+ 920@test.ex, 921@test.ex, 922@test.ex, 923@test.ex, 924@test.ex,
+ 925@test.ex, 926@test.ex, 927@test.ex, 928@test.ex, 929@test.ex,
+ 930@test.ex, 931@test.ex, 932@test.ex, 933@test.ex, 934@test.ex,
+ 935@test.ex, 936@test.ex, 937@test.ex, 938@test.ex, 939@test.ex,
+ 940@test.ex, 941@test.ex, 942@test.ex, 943@test.ex, 944@test.ex,
+ 945@test.ex, 946@test.ex, 947@test.ex, 948@test.ex, 949@test.ex,
+ 950@test.ex, 951@test.ex, 952@test.ex, 953@test.ex, 954@test.ex,
+ 955@test.ex, 956@test.ex, 957@test.ex, 958@test.ex, 959@test.ex,
+ 960@test.ex, 961@test.ex, 962@test.ex, 963@test.ex, 964@test.ex,
+ 965@test.ex, 966@test.ex, 967@test.ex, 968@test.ex, 969@test.ex,
+ 970@test.ex, 971@test.ex, 972@test.ex, 973@test.ex, 974@test.ex,
+ 975@test.ex, 976@test.ex, 977@test.ex, 978@test.ex, 979@test.ex,
+ 980@test.ex, 981@test.ex, 982@test.ex, 983@test.ex, 984@test.ex,
+ 985@test.ex, 986@test.ex, 987@test.ex, 988@test.ex, 989@test.ex,
+ 990@test.ex, 991@test.ex, 992@test.ex, 993@test.ex, 994@test.ex,
+ 995@test.ex, 996@test.ex, 997@test.ex, 998@test.ex, 999@test.ex
+
+Here is a very short message.
+.
+****
+no_msglog_check
--- /dev/null
+# senders precondition in router
+2
+exim -bt userx@test.ex
--- /dev/null
+# Sender: header (untrusted caller with local_sender_retain)
+exim -odi userx@test.ex
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+****
+exim -odi userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+****
+exim -bs -odi
+mail from:userx@cus.cam.ac.uk
+rcpt to:userx@test.ex
+data
+Sender: Sender in original <sender@original.ex>
+
+This is a test message.
+.
+quit
+****
+exim -odi userx@test.ex
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+****
+exim -odi -f userx@outside.ex userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+****
+exim -odi userx@test.ex
+From userx@elsewhere.ex Fri Jan 5 12:35 GMT 1996
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+****
+exim -bs -odi
+mail from:userx@cus.cam.ac.uk
+rcpt to:userx@test.ex
+data
+Sender: Sender in original <sender@original.ex>
+From: From person <from@some.where>
+
+This is a test message.
+.
+quit
+
--- /dev/null
+# autoreply with failing once file
+exim -odi userx@test.ex
+Subject: first message; non-printer >\r<
+****
--- /dev/null
+# $domain_data
+2
+exim -v -bv xxx@test.ex xxx@one.test.ex
+****
--- /dev/null
+# remote host IP address is the local host
+need_ipv4
+#
+exim -bh V4NET.0.0.0
+mail from:<userx@test.ex>
+rcpt to:<userx@not.test.ex>
+quit
+****
+exim -odi userx@not.test.ex
+.
+****
+1
+exim -bt userx@not.test.ex
--- /dev/null
+# self = pass with unseen filter
+exim -odi userx@not.test.ex
+Test message
+.
--- /dev/null
+# deliver to a FIFO (nothing listening)
+mkfifo -m 0600 DIR/test-fifo
+exim -odi userx@test.ex
+Test message
+.
--- /dev/null
+# qualify_preserve_domain
+exim -odi userx@a.test.ex, usery@b.test.ex
+Test message
+.
--- /dev/null
+# $domain_data and $local_part_data and caseful $local_part handling
+exim -odi unknown@test.ex
+Test message
+.
+****
+exim -odi userx@unknown.test.ex
+Test message
+.
+****
+exim -odi unknown@test.ex userx@test.ex
+Test message
+.
+****
+exim -odi userx@unknown.domain
+Test message
+.
+****
+exim -odi userx@known.domain
+Test message
+.
+****
+exim -odi UNKNOWN@KNOWN.DOMAIN
+Test to uppercased local part UNKNOWN@KNOWN.DOMAIN
+.
+****
+exim -odi USERX@KNOWN.DOMAIN
+Test to uppercased local part USERX@KNOWN.DOMAIN
+.
+****
+exim -odi PIPE@PIPE.DOMAIN
+Test to uppercased piped address.
+.
+****
--- /dev/null
+# ultimate address timeout
+need_ipv4
+#
+exim -odq a@unknown.ex b@known.ex c@test.ex d@test.ex
+Test message
+.
+****
+sleep 3
+exim -odi -q
+****
+exim -odi -q
+****
+sleep 4
+exim -odi -q
+****
+# Remove so that next message does not arrive before
+# the time of first failure.
+sudo rm DIR/spool/db/retry
+exim -odq -f '<>' b@known.ex
+test 2
+.
+****
+sleep 3
+exim -odi -q
+****
+no_message_check
--- /dev/null
+# errors_to in user filters and bounce_return_body
+exim -odi -bs
+mail from:<abcd@x.y.z>
+rcpt to:<forwarder@test.ex>
+rcpt to:<forwarder2@test.ex>
+data
+Test message.
+.
+quit
+****
+exim -DBRB=false -odi -bs
+mail from:<abcd@x.y.z>
+rcpt to:<forwarder@test.ex>
+rcpt to:<forwarder2@test.ex>
+data
+Test message.
+Several lines.
+Several lines.
+.
+quit
+****
--- /dev/null
+# mailbox locking
+exim -odi userx
+Transport: local_delivery
+First message.
+****
+exim_lock -v test-mail/userx
+exim -odi userx
+Transport: local_delivery
+Second message
+****
+exim -qf
+****
+exim_lock -v -fcntl test-mail/userx
+exim -odi userx
+Transport: local_delivery_fcntl
+Third message
+****
+exim -qf
+****
+exim_lock -v -fcntl test-mail/userx
+exim -odi userx
+Transport: local_delivery_fcntl_blocking
+Fourth message
+****
+exim -qf
+****
--- /dev/null
+# RBL /accept (default reject)
+exim -bh V4NET.11.12.14
+ehlo exim.test.ex
+mail from:postmaster@exim.test.ex
+rcpt to:<userx@exim.test.ex>
+rcpt to:list@exim.test.ex
+data
+test data
+.
+quit
+****
+exim -bh V4NET.11.12.13
+ehlo exim.test.ex
+mail from:<postmaster@exim.test.ex>
+rcpt to:<userx@exim.test.ex>
+data
+test message data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# RBL specific address
+exim -bh V4NET.11.12.14
+mail from:postmaster@exim.test.ex
+rcpt to:<userx@exim.test.ex>
+rcpt to:list@exim.test.ex
+data
+test data
+.
+quit
+****
+exim -bh V4NET.11.12.15
+mail from:<postmaster@exim.test.ex>
+rcpt to:<userx@exim.test.ex>
+data
+test message data
+.
+quit
+****
+exim -bh V4NET.11.12.20
+mail from:<postmaster@exim.test.ex>
+quit
+****
+exim -bh V4NET.11.12.21
+mail from:<postmaster@exim.test.ex>
+quit
+****
+no_msglog_check
--- /dev/null
+# autoreply with non-printing characters
+exim -odi reply1@test.ex
+Subject: first message; non-printer >\b<
+****
+exim -odi reply2@test.ex
+Subject: first message; non-printer >\b<
+****
--- /dev/null
+# -bv, -bt with trusted things
+2
+exim -bv -oMr prot1 xxx@test.ex
+****
+2
+exim -bt -oMr prot2 xxx@test.ex
+****
+2
+exim -bvs xxx@test.ex
+****
+exim -odi -oMr prot1 xxx@test.ex
+****
--- /dev/null
+# open file descriptor test
+exim -odi pipe filter
+Test message
+.
+****
--- /dev/null
+# smtp client "interface" option
+need_ipv4
+#
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250-HELP
+250 AUTH LOGIN
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+DATA
+354 Send data
+.
+250 OK
+QUIT
+250 OK
+****
+exim -d-all+transport -odi userx@domain.com
+.
+****
--- /dev/null
+# DNS_AGAIN in manualroute
+need_ipv4
+#
+exim -odi x@remote.domain
+****
+no_msglog_check
--- /dev/null
+# MX pointing to IP address not allowed
+2
+exim -bt x@mxt10.test.ex
+****
+exim -bh V4NET.9.8.7
+mail from:<x@mxt10.test.ex>
+rcpt to:<x@y>
+quit
+****
+exim -bh V4NET.9.8.7
+mail from:<x@ten-1.test.ex>
+rcpt to:<x@mxt10.test.ex>
+quit
+****
--- /dev/null
+# MX pointing to IP address allowed
+exim -bt x@mxt10.test.ex
+****
--- /dev/null
+# Continuation lines and long lines and macro (re)definition
+need_ipv4
+#
+exim -bP percent_hack_domains hold_domains queue_domains host_lookup queue_smtp_domains hosts_treat_as_local ignore_fromline_hosts delay_warning_condition
+****
+exim -brw x@junk.junk
+****
+exim -brt x@junk.junk
+****
+exim -bP router R1
+****
+exim -bs
+****
--- /dev/null
+# Missing quote in option value
+1
+exim -bP log_file_path
+****
--- /dev/null
+# List delimiters
+exim -d-all+route -bv x@ten y@two x@test1 x@test2 x@test3-4 x@one x@six
+****
--- /dev/null
+# control of Sender: (default, includes Sender:)
+exim -odi postmaster
+From: not.the.login@test.ex
+Test message
+.
+****
--- /dev/null
+# control of Sender: (no_local_sender_check)
+exim -odi postmaster
+From: not.the.login@test.ex
+Test message
+.
+****
--- /dev/null
+# control of Sender: (local_from_{suf,pre}fix)
+exim -odi postmaster
+From: not.the.login@test.ex
+Test message
+.
+****
+exim -odi postmaster
+From: page+CALLER@test.ex
+Test message
+.
+****
+exim -odi postmaster
+From: call+CALLER@test.ex
+Test message
+.
+****
+exim -odi postmaster
+From: call-CALLER@test.ex
+Test message
+.
+****
+exim -odi postmaster
+From: CALLER&page@test.ex
+Test message
+.
+****
+exim -odi postmaster
+From: CALLER&call@test.ex
+Test message
+.
+****
+exim -odi postmaster
+From: CALLER=call@test.ex
+Test message
+.
+****
+exim -odi postmaster
+From: page+CALLER=call@test.ex
+Test message
+.
+****
--- /dev/null
+# virtual domains and mailing list basic test of no_more
+2
+exim -bv abcd@test.ex yes@exists.virt.test.ex no@exists.virt.test.ex xx@notexists.virt.test.ex
+****
+2
+exim -bv yes@list.test.ex no@list.test.ex
+****
--- /dev/null
+# queue run in order - single spool
+exim -odq a@test.ex
+****
+millisleep 500
+exim -odq b@test.ex
+****
+millisleep 500
+exim -odq c@test.ex
+****
+millisleep 500
+exim -odq d@test.ex
+****
+millisleep 500
+exim -odq e@test.ex
+****
+millisleep 500
+exim -odq f@test.ex
+****
+millisleep 500
+exim -odq g@test.ex
+****
+millisleep 500
+exim -odq h@test.ex
+****
+millisleep 500
+exim -odq i@test.ex
+****
+millisleep 500
+exim -odq j@test.ex
+****
+exim -bp
+****
+exim -q
+****
+no_msglog_check
--- /dev/null
+# queue run in order - split spool
+exim -odq a@test.ex
+****
+millisleep 500
+exim -odq b@test.ex
+****
+millisleep 500
+exim -odq c@test.ex
+****
+millisleep 500
+exim -odq d@test.ex
+****
+millisleep 500
+exim -odq e@test.ex
+****
+millisleep 500
+exim -odq f@test.ex
+****
+millisleep 500
+exim -odq g@test.ex
+****
+millisleep 500
+exim -odq h@test.ex
+****
+millisleep 500
+exim -odq i@test.ex
+****
+millisleep 500
+exim -odq j@test.ex
+****
+exim -bp
+****
+exim -q
+****
+no_msglog_check
--- /dev/null
+# redirect router with forbids
+1
+exim -bt defer file include
+****
+exim -odi defer file include
+****
+2
+exim -bt unknown
+****
+no_msglog_check
--- /dev/null
+# relay by sender and host
+exim -bh V4NET.0.0.1
+mail from:<x@y.z>
+rcpt to:<a@b.c>
+rset
+mail from:<userx@test.ex>
+rcpt to:<a@b.c>
+quit
+****
+exim -bh V4NET.0.0.2
+mail from:<x@y.z>
+rcpt to:<a@b.c>
+rset
+mail from:<userx@test.ex>
+rcpt to:<a@b.c>
+quit
+****
+exim -bh V4NET.0.0.3
+mail from:<x@y.z>
+rcpt to:<a@b.c>
+rset
+mail from:<userx@test.ex>
+rcpt to:<a@b.c>
+quit
+****
--- /dev/null
+# deliver_drop_privilege and setuid=EXIMUSER
+exim -odi CALLER
+Testing
+****
+exim -odi EXIMUSER
+Testing
+****
+exim_exim -odi EXIMUSER
+Testing setuid EXIMUSER
+****
+no_msglog_check
--- /dev/null
+# recognizing IPv4 address in HELO/EHLO
+need_ipv4
+#
+# Incoming messages will be queued; deliver by queue run at the end.
+#
+exim -DSERVER=server -bd -oX PORT_D
+****
+client HOSTIPV4 PORT_D
+??? 220
+ehlo [HOSTIPV4]
+??? 250-
+??? 250-
+??? 250-
+??? 250
+mail from:<>
+??? 250
+rcpt to:<userx@test.ex>
+??? 250
+data
+??? 354
+To: userx@test.ex
+
+EHLO [HOSTIPV4]
+.
+??? 250
+ehlo [IPV4:HOSTIPV4]
+??? 250-
+??? 250-
+??? 250-
+??? 250
+mail from:<>
+??? 250
+rcpt to:<userx@test.ex>
+??? 250
+data
+??? 354
+To: userx@test.ex
+
+EHLO [IPV4:HOSTIPV4]
+.
+??? 250
+ehlo HOSTIPV4
+??? 250-
+??? 250-
+??? 250-
+??? 250
+mail from:<>
+??? 250
+rcpt to:<userx@test.ex>
+??? 250
+data
+??? 354
+To: userx@test.ex
+
+EHLO HOSTIPV4
+.
+??? 250
+ehlo [V4NET.1.2.3]
+??? 250-
+??? 250-
+??? 250-
+??? 250
+mail from:<>
+??? 250
+rcpt to:<userx@test.ex>
+??? 250
+data
+??? 354
+To: userx@test.ex
+
+EHLO [V4NET.1.2.3]
+.
+??? 250
+quit
+??? 221
+****
+killdaemon
+# Wait for delivery process
+millisleep 500
+exim -q
+****
--- /dev/null
+# queue_only is set in the configuration
+need_ipv4
+#
+exim userx@domain.com
+.
+****
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250 HELP
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+452 Temporary error
+QUIT
+250 OK
+****
+exim -q
+****
+sleep 4
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250 HELP
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+452 Temporary error
+QUIT
+250 OK
+****
+exim -q
+****
+exim -q
+****
+no_msglog_check
--- /dev/null
+# further "self" tests
+need_ipv4
+#
+exim -d-all+route -bt xx@mxt6.test.ex
+****
+exim -d-all+route -bt myhost.test.ex@mxt1.test.ex
+****
+exim -d-all+route -bt xx@mxt1.test.ex
+****
+2
+exim -d-all+route -bt xx@not.exist
+****
+2
+exim -d-all+route -bt ff@mxt1.test.ex
+****
+2
+exim -d-all+route -bt fff@mxt1.test.ex
+****
--- /dev/null
+# failing header with very long apparent address
+exim -odq -bs
+mail from:<u2@test.ex>
+rcpt to:<u3@test.ex>
+data
+To: <u5@compuserve.com>,
+ <u6@emory.org>,
+ <u7@hotmail.com>,
+ <u8@olympus.ics.uci.edu>,
+ <u9@diana.ics.uci.edu>,
+ <u10@ics.uci.edu>,
+ <u11@hera.ics.uci.edu>,
+ <u12@isdtcp3.hwc.ca>,
+ <u13@hotmail.com>,
+ <u14@harris.com>,
+ <u15@texaco.com>,
+ <u16@compuserve.com>,
+ <u17@compuserve.com>,
+ <u18@mines.edu>,
+ <u19@pmc-sierra.com>,
+ <u20@cc.umanitoba.ca>,
+ <u21@vt.edu>,
+ <u22@cesani.newforce.ca>,
+ <u23@hermes.cam.ac.uk>,
+ <u24@io.org>,
+ <u25@acsu.buffalo.edu>,
+ <u26@acsu.buffalo.edu>,
+ <u27@terraport.net>,
+ <u28@freenet.carleton.ca>,
+ <u29@tsluk.com>,
+ <u30@aol.com>,
+ <u31@bellsouth.net>,
+ <u32@mailexcite.com>,
+ <u33@gpu.srv.ualberta.ca>,
+ <u34@auvm.american.edu>,
+ <u35@maspar.com>,
+ <u36@vm.cc.famu.edu>,
+ <u37@sympatico.ca>,
+ <u38@gsalink.com>,
+ <u39@hp.com>,
+ <u40@eudoramail.com>,
+ <u41@aol.com>,
+ <u42@cadvision.com>,
+ <u43@switchboardmail.com>,
+ <u44@geocities.com>,
+ <u45@mailexcite.com>,
+ <u46@injapan.net>,
+ <u47@mailexcite.com>,
+ <u48@hotmail.com>,
+ <u49@hotmail.com>,
+ <u50@redshift.com>,
+ <u51@ix.netcom.com>,
+ <u52@ix.netcom.com>,
+ <u53@oe.fau.edu>,
+ <u54@worldnet.att.net>,
+ <u55@ix.netcom.com>,
+ <u56@capecod.net>,
+ <u57@nol.net>,
+ <u58@ux1.cso.uiuc.edu>,
+ <u59@hotmail.com>,
+ <u60@compuserve.com>,
+ <u61@aol.com>,
+ <u62@hotmail.com>,
+ <u63@hpb.hwc.ca>,
+ <u64@hotmail.com>,
+ <u65@hotmail.com>,
+ <u66@alcor.concordia.ca>,
+ <u67@compuserve.com>,
+ <u68@tstt.net.tt>,
+ <u69@luccpua.it.luc.edu>,
+ <u70@super.zippo.com>,
+ <u71@sirius.com>,
+ <u72@craft.clarkson.edu>,
+ <u73@hotmail.com>,
+ <u74@iprolink.co.nz>,
+ <u75@dircon.co.uk>,
+ <u76@stratis-caribbean.com>,
+ <u77@aol.com>,
+ <u78@hotmail.com>,
+ <u79@webtv.net>,
+ <u80@unbsj.ca>,
+ <u81@caribsurf.com>,
+ <u82@shaw.wave.ca>,
+ <u83@aol.com>,
+ <u84@prodigy.net>,
+ <u85@mailexcite.com>,
+ <u86@pegasus.cc.ucf.edu>,
+ <u87@aol.com>,
+ <u88@angelfire.com>,
+ <u89@tibco.com>,
+ <u90@mailexcite.com>,
+ <u91@angelfire.com>,
+ <u92@worldnet.att.net>,
+ <u93@pacebell.net>,
+ <u94@msn.com>,
+ <u95@voicenet.com>,
+ <u96@compuserve.com>,
+ <u97@gpu.srv.ualberta.ca>,
+ <u98@cam.ac.uk>,
+ <u99@syr.edu>,
+ <u100@hotmail.com>,
+ <u101@sjumusic.stjohns.edu>,
+ <u102@aol.com>,
+ <u103@compuserve.com>,
+ <u104@compuserve.com>,
+ <u105@compuserve.com>,
+ <u106@wpg.ramp.net>,
+ <u107@webtv.net>,
+ <u108@compuserve.com>,
+ <u109@aol.com>,
+ <u110@compuserve.com>,
+ <u111@hotmail.com>,
+ <u112@yahoo.co.uk>,
+ <u113@bigfoot.com>,
+ <u114@nl2k.ab.ca>,
+ <u115@caribsurf.com>,
+ <u116@guyana.net.gy>,
+ <u117@hotmail.com>,
+ <u118@hotmail.com>,
+ <u119@webstersite.com>,
+ <u120@nortel.ca>,
+ <u121@snet.net>,
+ <u122@mailcity.com>,
+ <u123@aol.com>,
+ <u124@ucla.edu>,
+ <u125@compuserve.com>,
+ <u126@mailexcite.com>,
+ <u127@vax2.concordia.ca>,
+ <u128@wpo.it.luc.edu>,
+ <u129@ori.org>,
+ <u130@hpwinh43.uksr.hp.com>,
+ <u131@umbc2.umbc.edu>,
+ <u132@mailexcite.com>,
+ <u133@compuserve.com>,
+ <u134@marge.cs.mcgill.ca>,
+ <u135@homemail.com>,
+ <u136@idirect.com>,
+ <u137@mailcity.com>,
+ <u138@myworldmail.com>,
+ <u139@compuserve.com>,
+ <u140@thedoghousemail.com>,
+ <u141@compuserve.com>,
+ <u142@prodigy.com>,
+ <u143@compuserve.com>,
+ <u144@compuserve.com>,
+ <u145@istar.ca>,
+ <u146@hotmail.com>,
+ <u147@isdtcp3.hwc.ca>,
+ <u148@isdtcp3.hwc.ca>,
+ <u149@isdtcp3.hwc.ca>,
+ <u150@hotmail.com>,
+ <u151@sjumusic.stjohns.edu>,
+ <u152@is2.nyu.edu>,
+ <u153@email.psu.edu>,
+ <u154@hotmail.com>,
+ <u155@inet.lasierra.edu>,
+ <u156@angelfire.com>,
+ <u157@mailexcite.com>,
+ <u158@sunbeach.net>,
+ <u159@hotmail.com>,
+ <u160@hotmail.com>,
+ <u161@rfhsm.ac.uk>,
+ <u162@worldnet.att.net>,
+ <u163@hotmail.com>,
+ <u164@hotmail.com>,
+ <u165@sunbeach.net>,
+ <u166@sunbeach.net>,
+ <u167@mailcity.com>,
+ <u168@mailexcite.com>,
+ <u169@angelfire.com>,
+ <u170@mailexcite.com>,
+ <u171@mailexcite.com>,
+ <u172@mailexcite.com>,
+ <u173@mailexcite.com>,
+ <u174@gurlmail.com>,
+ <u175@webtv.net>,
+ <u176@zelacom.com>,
+ <u177@hotmail.com>,
+ <u178@hotmail.com>,
+ <u179@hotmail.com>,
+ <u180@ic.ac.uk>,
+ <u181@hotmail.com>,
+ <u182@compuserve.com>,
+ <u183@hotmail.com>,
+ <u184@barnard.columbia.edu>,
+ <u185@hotmail.com>,
+ <u186@compuserve.com>,
+ <u187@hotmail.com>,
+ <u188@hotmail.com>,
+ <u189@bigfoot.com>,
+ <u190@yahoo.com>,
+ <u191@frontiernet.net>,
+ <u192@mailexcite.com>,
+ <u193@pilot.msu.edu>,
+ <u194@pilot.msu.edu>,
+ <u195@eudoramail.com>,
+ <u196@hotmail.com>,
+ <u197@angelfire.com>,
+ <u198@angelfire.com>,
+ <u199@acsu.buffalo.edu>,
+ <u200@mailexcite.com>,
+ <u201@caribsurf.com>,
+ <u202@hotmail.com>,
+ <u203@gsaix2.cc.gasou.edu>,
+ <u204@gsaix2.cc.gas>,
+ <u205@hotmail.com>,
+ <u206@ubvms.cc.buffalo.edu>,
+ <u207@hotmail.com>,
+ <u208@hotmail.com>,
+ <u209@hotmail.com>,
+ <u210@worldnet.att.net>,
+ <u211@hotmail.com>,
+ <u212@shrike.depaul.edu">,
+ <u213@shrike.depaul.edu>,
+ <u214@hotmail.com>,
+ <u215@hotmail.com>,
+ <u216@hotmail.com>,
+ <u217@hotmail.com>,
+ <u218@hotmail.com>,
+ <u219@angelfire.com>,
+ <u220@chickmail.com>,
+ <u221@excite.com>,
+ <u222@chickmail.com>,
+ <u223@eudoramail.com>,
+ <u224@alleyne.demon.co.uk>,
+ <u225@dial.pipex.com>,
+ <u226@hotmail.com>,
+ <u227@gpu.srv.ualberta.ca>,
+ <u228@ulst.ac.uk>,
+ <u229@worldnet.att.net>,
+ <u230@hotmail.com>,
+ <u231@careerbuildermail.com>,
+ <u232@MSN.COM>,
+ <u233@angelfire.com>,
+ <u234@hotmail.com>,
+ <u235@hotmail.com>,
+ <u236@compuserve.com>,
+ <u237@compuserve.com>,
+ <u238@hotmail.com>,
+ <u239@bellsouth.net>,
+ <u240@n64rocks.com>,
+ <u241@mailexcite.com>,
+ <u242@mailexcite.com>,
+ <u243@mailcity.com>,
+ <u244@bigfoot.com>,
+ <u245@sunbeach.net>,
+ <u246@mailcity.com>,
+ <u247@pacbell.net>,
+ <u248@hotmail.com>,
+ <u249@worldnet.att.net>,
+ <u250@bigfoot.com>,
+ <u251@mailexcite.com>,
+ <u252@netnoir.net>,
+ <u253@cablecomm1.pcs.mot.com>,
+ <u254@compuserve.com>,
+ <u255@hertscc.gov.uk>,
+ <u256@aol.com>,
+ <u257@bigfoot.com>,
+ <u258@hotmail.com>,
+ <u259@email.psu.edu>,
+ <u260@hotmail.com>,
+ <u261@hotmail.com>,
+ <u262@hotmail.com>,
+ <u263@compuserve.com>,
+ <u264@compuserve.com>,
+ <u265@compuserve.com>,
+ <u266@ucl.ac.uk>,
+ <u267@hotmail.com>,
+ <u268@hotmail.com>,
+ <u269@hotmail.com>,
+ <u270@worldnet.att.net>,
+ <u271@hotmail.com>,
+ <u272@hotmail.com>,
+ <u273@hotmail.com>,
+ <u274@hotmail.com>,
+ <u275@hotmail.com>,
+ <u276@hotmail.com>,
+ <u277@bris.ac.uk>,
+ <u278@cornell.edu>,
+ <u279@hotmail.com>,
+ <u280@luccpua.it.luc.edu>,
+ <u281@hotmail.com>,
+ <u282@hotmail.com>,
+ <u283@hotmail.com>,
+ <u284@bigfoot.com>,
+ <u285@online.no>,
+ <u286@mars.rowan.edu>,
+ <u287@gwis2.circ.gwu.edu>,
+ <u288@hotmail.com>,
+ <u289@hotmail.com>,
+ <u290@hotmail.com>,
+ <u291@hotmail.com>,
+ <u292@hotmail.com>,
+ <u293@hotmail.com>,
+ <u294@hotmail.com>,
+ <u295@hotmail.com>,
+ <u296@bradford.ac.uk>,
+ <u297@hotmail.com>,
+ <u298@bigfoot.com>,
+ <u299@tstt.net.tt>,
+ <u300@hotmail.com>,
+ <u301@hotmail.com>,
+ <u302@aol.com>,
+ <u303@worldnet.att.net>,
+ <u304@hotmail.com>,
+ <u305@hotmail.com>,
+ <u306@sjumusic.stjohns.edu>,
+ <u307@compuserve.com>,
+ <u308@bigfoot.com>,
+ <u309@netstarsolutions.co.uk>,
+ <u310@hotmail.com>,
+ <u311@aol.com>,
+ <u312@law.ucla.edu>,
+ <u313@hotmail.com>,
+ <u314@hotmail.com>,
+ <u315@aol.com>,
+ <u316@gmu.edu>,
+ <u317@compuserve.com>,
+ <u318@hotmail.com>,
+ <u319@hotmail.com>,
+ <u320@compuserve.com>,
+ <u321@sjumusic.stjohns.edu>,
+ <u322@hotmail.com>,
+ <u323@cornell.edu>,
+ <u324@bham.ac.uk>,
+ <u325@hotmail.com>,
+ <u326@cu.nih.gov>,
+ <u327@oswego.edu>,
+ <u328@hotmail.com>,
+ <u329@worldnet.att.net>,
+ <u330@cdvfs01.cdv.nyu.edu>,
+ <u331@worldnet.att.net>,
+ <u332@compuserve.com>,
+ <u333@hotmail.com>,
+ <u334@hotmail.com>,
+ <u335@stud.man.ac.uk>,
+ <u336@virginia.edu>,
+ <u337@columbia.edu>,
+ <u338@hotmail.com>,
+ <u339@hotmail.com>,
+ <u340@compuserve.com>,
+ <u341@compuserve.com>
+Subject: New Business Opportunity
+Date: Tue, 9 May 2000 20:08:52 -0300
+MIME-Version: 1.0
+Content-Type: multipart/alternative;
+ boundary="----=_NextPart_000_0004_01BFB9F2.65A80E80"
+X-Priority: 3
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook Express 5.00.2314.1300
+X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
+.
+quit
+****
--- /dev/null
+# Overlong SMTP response received
+need_ipv4
+#
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250 HELP
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+DATA
+350 Send message
+.
+550 There is a problem with the message, but this response line is over the limit for reasonable SMTP responses. 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890
+QUIT
+250 OK
+****
+exim -odi userx@domain.com
+.
+****
+exim -q
+****
+no_msglog_check
--- /dev/null
+# system filter $recipients test (no shell)
+exim -odi pipe
+****
+exim -odi pipe another a-third
+****
--- /dev/null
+# system filter $recipients test (with shell)
+exim -odi pipe
+****
+exim -odi pipe another a-third
+****
--- /dev/null
+# multiple headers_add in routers
+exim -odi a
--- /dev/null
+# rewrite envelope sender or return path to null
+exim -odi userx
+****
+exim -odi -f remove userx
+****
+exim -odi -f trakill userx
+****
+exim -brw error@test.ex
+****
+exim -brw remove@test.ex
+****
--- /dev/null
+# system filter error text
+exim -odi joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs joebloggs
+****
+no_msglog_check
--- /dev/null
+# quota warn threshold when mailbox full
+exim -odi userx
+This is a test message
+****
+exim -odi userx
+quota: 0
+threshold: 10
+This is a test message
+****
+exim -odi userx
+quota: 10
+threshold: 100%
+This is a test message
+****
+exim -d-all+transport -odi userx
+quota: 50M
+threshold: 41%
+Another test
+****
+no_msglog_check
--- /dev/null
+# system filter to pipe without transport
+exim -odi userx
+This is a test message
+****
+no_msglog_check
--- /dev/null
+# local user home directory
+exim -odi CALLER
+****
--- /dev/null
+# :unknown:
+2
+exim -bt unknown
+****
--- /dev/null
+# deliver time scan - pipe not using BSMTP
+exim -odi userx
+Test message
+****
+exim -odi userx usery userz
+Another test message
+****
--- /dev/null
+# deliver time scan - pipe using BSMTP
+exim -odi userx
+Test message
+****
+exim -odi userx usery userz
+Another test message
+****
+exim -odi userx userx@non-local.example
+Yet another test message
+****
--- /dev/null
+# Forcing verify failures for specific senders
+need_ipv4
+#
+exim -bh V4NET.0.0.0
+mail from:<user@bad.domain>
+rcpt to:<userx@test.ex>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.0
+mail from:<user@bad.domain2>
+rcpt to:<userx@test.ex>
+data
+.
+quit
+****
+exim -bh V4NET.0.0.0
+mail from:<user@ten-1.test.ex>
+rcpt to:<userx@test.ex>
+data
+.
+quit
+****
+no_msglog_check
--- /dev/null
+# -Mg -Mf -Mt
+exim -odq someone@somewhere
+Some message or other.
+****
+exim -Mf $msg1
+****
+exim -Mt $msg1
+****
+exim -odi -Mg $msg1
+****
+exim -odq -f '<>' someone@somewhere
+Another message or some.
+****
+exim -odi -Mg $msg1
+****
--- /dev/null
+# Per-user system-ish filter
+need_ipv4
+#
+exim -odi userx
+Subject: fail this
+This is a message to be failed.
+****
+exim -odi userx
+Subject: freeze this (1)
+This is a message to be frozen.
+****
+exim -odi userx
+Subject: reply to this
+This is a message to be replied to.
+****
+exim -bpa
+****
+exim -q
+****
+exim -qff
+****
+exim -odi userx
+Subject: freeze this (2)
+This is a second message to be frozen.
+****
+exim -qqRff userx
+****
+exim -odi userz
+Subject: freeze this (3)
+This is a third message to be frozen.
+****
+exim -bp
+****
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250 HELP
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+DATA
+350 Send message
+.
+250 OK
+QUIT
+250 OK
+****
+exim -qqRff userz
+****
--- /dev/null
+# log_subject
+exim -odi userx
+Subject: one-line subject
+****
+exim -odi userx
+Subject: two-line subject,
+ that is, it covers two lines
+****
+exim -odi userx
+Subject: subject containing \b\b\b\b\b backspaces
+****
+exim -odi userx
+Subject: subject contains "quotes" and \backslashes\ and
+ \a non-prints over multiple
+ lines
+****
+exim -odi userx
+Subject: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= ABCD
+****
+no_message_check
--- /dev/null
+# -qqf
+need_ipv4
+#
+exim -odq userx@domain.com
+.
+****
+exim -odq abcd@domain.com
+.
+****
+server PORT_S
+220 ESMTP
+EHLO
+250-OK
+250 HELP
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+DATA
+350 Send message
+.
+250 OK
+MAIL FROM:
+250 Sender OK
+RCPT TO:
+250 Recipient OK
+DATA
+350 Send message
+.
+250 OK
+QUIT
+250 OK
+****
+exim -odi -qqf
+****
--- /dev/null
+# SIZE and check_spool_space
+exim -odq -bs
+EHLO some.host
+MAIL FROM:<userx@test.ex> SIZE=1000000000
+RSET
+MAIL FROM:<userx@test.ex> SIZE=10
+RSET
+MAIL FROM:<userx@test.ex>
+RSET
+MAIL FROM:<userx@test.ex> SIZE=5000000000
+QUIT
+****
+exim -bh 1.2.3.4
+EHLO some.host
+QuIt
+****
+exim -bh 5.6.7.8
+EHLO some.host
+QuIt
+****
+exim -DCSS= -odq -bs
+EHLO some.host
+MAIL FROM:<userx@test.ex> SIZE=1000000000
+RSET
+MAIL FROM:<userx@test.ex> SIZE=10
+RSET
+MAIL FROM:<userx@test.ex>
+RSET
+MAIL FROM:<userx@test.ex> SIZE=5000000000
+RSET
+MAIL FROM:<userx@test.ex> SIZE=50000000000000000000000
+QUIT
+****
--- /dev/null
+# message size check without SIZE
+exim -odq -bs
+EHLO some.host
+MAIL FROM:<userx@test.ex>
+RCPT TO:<userx@test.ex>
+Data
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+.
+QUIT
+****
+1
+exim -oep -odq userx
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+The quick brown fox jumps over the lazy dog.
+.
+****
+no_msglog_check
--- /dev/null
+# headers added by system filter
+exim -odi userx@test.ex
+Test message.
+.
+****
+exim -qf
+****
--- /dev/null
+# caching failed DNS lookups
+1
+exim -d -bt userx@test.again.dns abcd@test.again.dns abcd@ten-1.test.ex usery@test.again.dns userz@test.again.dns xyz@ten-1.test.ex
+****
+1
+exim -d -bt userx@test.fail.dns abcd@test.fail.dns abcd@ten-1.test.ex usery@test.fail.dns userz@test.fail.dns xyz@ten-1.test.ex
+****
+2
+exim -d -bt userx@nonexist.test.ex abcd@nonexist.test.ex abcd@ten-1.test.ex usery@nonexist.test.ex userz@nonexist.test.ex xyz@ten-1.test.ex
+****
+1
+exim -d -bt srv@test.again.dns srv@test.fail.dns
+****
--- /dev/null
+# expand very long header in user filter
+exim -odi userx@test.ex
+From: userx@test.ex
+To: 000@test.ex, 001@test.ex, 002@test.ex, 003@test.ex, 004@test.ex,
+ 005@test.ex, 006@test.ex, 007@test.ex, 008@test.ex, 009@test.ex,
+ 010@test.ex, 011@test.ex, 012@test.ex, 013@test.ex, 014@test.ex,
+ 015@test.ex, 016@test.ex, 017@test.ex, 018@test.ex, 019@test.ex,
+ 020@test.ex, 021@test.ex, 022@test.ex, 023@test.ex, 024@test.ex,
+ 025@test.ex, 026@test.ex, 027@test.ex, 028@test.ex, 029@test.ex,
+ 030@test.ex, 031@test.ex, 032@test.ex, 033@test.ex, 034@test.ex,
+ 035@test.ex, 036@test.ex, 037@test.ex, 038@test.ex, 039@test.ex,
+ 040@test.ex, 041@test.ex, 042@test.ex, 043@test.ex, 044@test.ex,
+ 045@test.ex, 046@test.ex, 047@test.ex, 048@test.ex, 049@test.ex,
+ 050@test.ex, 051@test.ex, 052@test.ex, 053@test.ex, 054@test.ex,
+ 055@test.ex, 056@test.ex, 057@test.ex, 058@test.ex, 059@test.ex,
+ 060@test.ex, 061@test.ex, 062@test.ex, 063@test.ex, 064@test.ex,
+ 065@test.ex, 066@test.ex, 067@test.ex, 068@test.ex, 069@test.ex,
+ 070@test.ex, 071@test.ex, 072@test.ex, 073@test.ex, 074@test.ex,
+ 075@test.ex, 076@test.ex, 077@test.ex, 078@test.ex, 079@test.ex,
+ 080@test.ex, 081@test.ex, 082@test.ex, 083@test.ex, 084@test.ex,
+ 085@test.ex, 086@test.ex, 087@test.ex, 088@test.ex, 089@test.ex,
+ 090@test.ex, 091@test.ex, 092@test.ex, 093@test.ex, 094@test.ex,
+ 095@test.ex, 096@test.ex, 097@test.ex, 098@test.ex, 099@test.ex,
+ 100@test.ex, 101@test.ex, 102@test.ex, 103@test.ex, 104@test.ex,
+ 105@test.ex, 106@test.ex, 107@test.ex, 108@test.ex, 109@test.ex,
+ 110@test.ex, 111@test.ex, 112@test.ex, 113@test.ex, 114@test.ex,
+ 115@test.ex, 116@test.ex, 117@test.ex, 118@test.ex, 119@test.ex,
+ 120@test.ex, 121@test.ex, 122@test.ex, 123@test.ex, 124@test.ex,
+ 125@test.ex, 126@test.ex, 127@test.ex, 128@test.ex, 129@test.ex,
+ 130@test.ex, 131@test.ex, 132@test.ex, 133@test.ex, 134@test.ex,
+ 135@test.ex, 136@test.ex, 137@test.ex, 138@test.ex, 139@test.ex,
+ 140@test.ex, 141@test.ex, 142@test.ex, 143@test.ex, 144@test.ex,
+ 145@test.ex, 146@test.ex, 147@test.ex, 148@test.ex, 149@test.ex,
+ 150@test.ex, 151@test.ex, 152@test.ex, 153@test.ex, 154@test.ex,
+ 155@test.ex, 156@test.ex, 157@test.ex, 158@test.ex, 159@test.ex,
+ 160@test.ex, 161@test.ex, 162@test.ex, 163@test.ex, 164@test.ex,
+ 165@test.ex, 166@test.ex, 167@test.ex, 168@test.ex, 169@test.ex,
+ 170@test.ex, 171@test.ex, 172@test.ex, 173@test.ex, 174@test.ex,
+ 175@test.ex, 176@test.ex, 177@test.ex, 178@test.ex, 179@test.ex,
+ 180@test.ex, 181@test.ex, 182@test.ex, 183@test.ex, 184@test.ex,
+ 185@test.ex, 186@test.ex, 187@test.ex, 188@test.ex, 189@test.ex,
+ 190@test.ex, 191@test.ex, 192@test.ex, 193@test.ex, 194@test.ex,
+ 195@test.ex, 196@test.ex, 197@test.ex, 198@test.ex, 199@test.ex,
+ 200@test.ex, 201@test.ex, 202@test.ex, 203@test.ex, 204@test.ex,
+ 205@test.ex, 206@test.ex, 207@test.ex, 208@test.ex, 209@test.ex,
+ 210@test.ex, 211@test.ex, 212@test.ex, 213@test.ex, 214@test.ex,
+ 215@test.ex, 216@test.ex, 217@test.ex, 218@test.ex, 219@test.ex,
+ 220@test.ex, 221@test.ex, 222@test.ex, 223@test.ex, 224@test.ex,
+ 225@test.ex, 226@test.ex, 227@test.ex, 228@test.ex, 229@test.ex,
+ 230@test.ex, 231@test.ex, 232@test.ex, 233@test.ex, 234@test.ex,
+ 235@test.ex, 236@test.ex, 237@test.ex, 238@test.ex, 239@test.ex,
+ 240@test.ex, 241@test.ex, 242@test.ex, 243@test.ex, 244@test.ex,
+ 245@test.ex, 246@test.ex, 247@test.ex, 248@test.ex, 249@test.ex,
+ 250@test.ex, 251@test.ex, 252@test.ex, 253@test.ex, 254@test.ex,
+ 255@test.ex, 256@test.ex, 257@test.ex, 258@test.ex, 259@test.ex,
+ 260@test.ex, 261@test.ex, 262@test.ex, 263@test.ex, 264@test.ex,
+ 265@test.ex, 266@test.ex, 267@test.ex, 268@test.ex, 269@test.ex,
+ 270@test.ex, 271@test.ex, 272@test.ex, 273@test.ex, 274@test.ex,
+ 275@test.ex, 276@test.ex, 277@test.ex, 278@test.ex, 279@test.ex,
+ 280@test.ex, 281@test.ex, 282@test.ex, 283@test.ex, 284@test.ex,
+ 285@test.ex, 286@test.ex, 287@test.ex, 288@test.ex, 289@test.ex,
+ 290@test.ex, 291@test.ex, 292@test.ex, 293@test.ex, 294@test.ex,
+ 295@test.ex, 296@test.ex, 297@test.ex, 298@test.ex, 299@test.ex,
+ 300@test.ex, 301@test.ex, 302@test.ex, 303@test.ex, 304@test.ex,
+ 305@test.ex, 306@test.ex, 307@test.ex, 308@test.ex, 309@test.ex,
+ 310@test.ex, 311@test.ex, 312@test.ex, 313@test.ex, 314@test.ex,
+ 315@test.ex, 316@test.ex, 317@test.ex, 318@test.ex, 319@test.ex,
+ 320@test.ex, 321@test.ex, 322@test.ex, 323@test.ex, 324@test.ex,
+ 325@test.ex, 326@test.ex, 327@test.ex, 328@test.ex, 329@test.ex,
+ 330@test.ex, 331@test.ex, 332@test.ex, 333@test.ex, 334@test.ex,
+ 335@test.ex, 336@test.ex, 337@test.ex, 338@test.ex, 339@test.ex,
+ 340@test.ex, 341@test.ex, 342@test.ex, 343@test.ex, 344@test.ex,
+ 345@test.ex, 346@test.ex, 347@test.ex, 348@test.ex, 349@test.ex,
+ 350@test.ex, 351@test.ex, 352@test.ex, 353@test.ex, 354@test.ex,
+ 355@test.ex, 356@test.ex, 357@test.ex, 358@test.ex, 359@test.ex,
+ 360@test.ex, 361@test.ex, 362@test.ex, 363@test.ex, 364@test.ex,
+ 365@test.ex, 366@test.ex, 367@test.ex, 368@test.ex, 369@test.ex,
+ 370@test.ex, 371@test.ex, 372@test.ex, 373@test.ex, 374@test.ex,
+ 375@test.ex, 376@test.ex, 377@test.ex, 378@test.ex, 379@test.ex,
+ 380@test.ex, 381@test.ex, 382@test.ex, 383@test.ex, 384@test.ex,
+ 385@test.ex, 386@test.ex, 387@test.ex, 388@test.ex, 389@test.ex,
+ 390@test.ex, 391@test.ex, 392@test.ex, 393@test.ex, 394@test.ex,
+ 395@test.ex, 396@test.ex, 397@test.ex, 398@test.ex, 399@test.ex,
+ 400@test.ex, 401@test.ex, 402@test.ex, 403@test.ex, 404@test.ex,
+ 405@test.ex, 406@test.ex, 407@test.ex, 408@test.ex, 409@test.ex,
+ 410@test.ex, 411@test.ex, 412@test.ex, 413@test.ex, 414@test.ex,
+ 415@test.ex, 416@test.ex, 417@test.ex, 418@test.ex, 419@test.ex,
+ 420@test.ex, 421@test.ex, 422@test.ex, 423@test.ex, 424@test.ex,
+ 425@test.ex, 426@test.ex, 427@test.ex, 428@test.ex, 429@test.ex,
+ 430@test.ex, 431@test.ex, 432@test.ex, 433@test.ex, 434@test.ex,
+ 435@test.ex, 436@test.ex, 437@test.ex, 438@test.ex, 439@test.ex,
+ 440@test.ex, 441@test.ex, 442@test.ex, 443@test.ex, 444@test.ex,
+ 445@test.ex, 446@test.ex, 447@test.ex, 448@test.ex, 449@test.ex,
+ 450@test.ex, 451@test.ex, 452@test.ex, 453@test.ex, 454@test.ex,
+ 455@test.ex, 456@test.ex, 457@test.ex, 458@test.ex, 459@test.ex,
+ 460@test.ex, 461@test.ex, 462@test.ex, 463@test.ex, 464@test.ex,
+ 465@test.ex, 466@test.ex, 467@test.ex, 468@test.ex, 469@test.ex,
+ 470@test.ex, 471@test.ex, 472@test.ex, 473@test.ex, 474@test.ex,
+ 475@test.ex, 476@test.ex, 477@test.ex, 478@test.ex, 479@test.ex,
+ 480@test.ex, 481@test.ex, 482@test.ex, 483@test.ex, 484@test.ex,
+ 485@test.ex, 486@test.ex, 487@test.ex, 488@test.ex, 489@test.ex,
+ 490@test.ex, 491@test.ex, 492@test.ex, 493@test.ex, 494@test.ex,
+ 495@test.ex, 496@test.ex, 497@test.ex, 498@test.ex, 499@test.ex,
+ 500@test.ex, 501@test.ex, 502@test.ex, 503@test.ex, 504@test.ex,
+ 505@test.ex, 506@test.ex, 507@test.ex, 508@test.ex, 509@test.ex,
+ 510@test.ex, 511@test.ex, 512@test.ex, 513@test.ex, 514@test.ex,
+ 515@test.ex, 516@test.ex, 517@test.ex, 518@test.ex, 519@test.ex,
+ 520@test.ex, 521@test.ex, 522@test.ex, 523@test.ex, 524@test.ex,
+ 525@test.ex, 526@test.ex, 527@test.ex, 528@test.ex, 529@test.ex,
+ 530@test.ex, 531@test.ex, 532@test.ex, 533@test.ex, 534@test.ex,
+ 535@test.ex, 536@test.ex, 537@test.ex, 538@test.ex, 539@test.ex,
+ 540@test.ex, 541@test.ex, 542@test.ex, 543@test.ex, 544@test.ex,
+ 545@test.ex, 546@test.ex, 547@test.ex, 548@test.ex, 549@test.ex,
+ 550@test.ex, 551@test.ex, 552@test.ex, 553@test.ex, 554@test.ex,
+ 555@test.ex, 556@test.ex, 557@test.ex, 558@test.ex, 559@test.ex,
+ 560@test.ex, 561@test.ex, 562@test.ex, 563@test.ex, 564@test.ex,
+ 565@test.ex, 566@test.ex, 567@test.ex, 568@test.ex, 569@test.ex,
+ 570@test.ex, 571@test.ex, 572@test.ex, 573@test.ex, 574@test.ex,
+ 575@test.ex, 576@test.ex, 577@test.ex, 578@test.ex, 579@test.ex,
+ 580@test.ex, 581@test.ex, 582@test.ex, 583@test.ex, 584@test.ex,
+ 585@test.ex, 586@test.ex, 587@test.ex, 588@test.ex, 589@test.ex,
+ 590@test.ex, 591@test.ex, 592@test.ex, 593@test.ex, 594@test.ex,
+ 595@test.ex, 596@test.ex, 597@test.ex, 598@test.ex, 599@test.ex,
+ 600@test.ex, 601@test.ex, 602@test.ex, 603@test.ex, 604@test.ex,
+ 605@test.ex, 606@test.ex, 607@test.ex, 608@test.ex, 609@test.ex,
+ 610@test.ex, 611@test.ex, 612@test.ex, 613@test.ex, 614@test.ex,
+ 615@test.ex, 616@test.ex, 617@test.ex, 618@test.ex, 619@test.ex,
+ 620@test.ex, 621@test.ex, 622@test.ex, 623@test.ex, 624@test.ex,
+ 625@test.ex, 626@test.ex, 627@test.ex, 628@test.ex, 629@test.ex,
+ 630@test.ex, 631@test.ex, 632@test.ex, 633@test.ex, 634@test.ex,
+ 635@test.ex, 636@test.ex, 637@test.ex, 638@test.ex, 639@test.ex,
+ 640@test.ex, 641@test.ex, 642@test.ex, 643@test.ex, 644@test.ex,
+ 645@test.ex, 646@test.ex, 647@test.ex, 648@test.ex, 649@test.ex,
+ 650@test.ex, 651@test.ex, 652@test.ex, 653@test.ex, 654@test.ex,
+ 655@test.ex, 656@test.ex, 657@test.ex, 658@test.ex, 659@test.ex,
+ 660@test.ex, 661@test.ex, 662@test.ex, 663@test.ex, 664@test.ex,
+ 665@test.ex, 666@test.ex, 667@test.ex, 668@test.ex, 669@test.ex,
+ 670@test.ex, 671@test.ex, 672@test.ex, 673@test.ex, 674@test.ex,
+ 675@test.ex, 676@test.ex, 677@test.ex, 678@test.ex, 679@test.ex,
+ 680@test.ex, 681@test.ex, 682@test.ex, 683@test.ex, 684@test.ex,
+ 685@test.ex, 686@test.ex, 687@test.ex, 688@test.ex, 689@test.ex,
+ 690@test.ex, 691@test.ex, 692@test.ex, 693@test.ex, 694@test.ex,
+ 695@test.ex, 696@test.ex, 697@test.ex, 698@test.ex, 699@test.ex,
+ 700@test.ex, 701@test.ex, 702@test.ex, 703@test.ex, 704@test.ex,
+ 705@test.ex, 706@test.ex, 707@test.ex, 708@test.ex, 709@test.ex,
+ 710@test.ex, 711@test.ex, 712@test.ex, 713@test.ex, 714@test.ex,
+ 715@test.ex, 716@test.ex, 717@test.ex, 718@test.ex, 719@test.ex,
+ 720@test.ex, 721@test.ex, 722@test.ex, 723@test.ex, 724@test.ex,
+ 725@test.ex, 726@test.ex, 727@test.ex, 728@test.ex, 729@test.ex,
+ 730@test.ex, 731@test.ex, 732@test.ex, 733@test.ex, 734@test.ex,
+ 735@test.ex, 736@test.ex, 737@test.ex, 738@test.ex, 739@test.ex,
+ 740@test.ex, 741@test.ex, 742@test.ex, 743@test.ex, 744@test.ex,
+ 745@test.ex, 746@test.ex, 747@test.ex, 748@test.ex, 749@test.ex,
+ 750@test.ex, 751@test.ex, 752@test.ex, 753@test.ex, 754@test.ex,
+ 755@test.ex, 756@test.ex, 757@test.ex, 758@test.ex, 759@test.ex,
+ 760@test.ex, 761@test.ex, 762@test.ex, 763@test.ex, 764@test.ex,
+ 765@test.ex, 766@test.ex, 767@test.ex, 768@test.ex, 769@test.ex,
+ 770@test.ex, 771@test.ex, 772@test.ex, 773@test.ex, 774@test.ex,
+ 775@test.ex, 776@test.ex, 777@test.ex, 778@test.ex, 779@test.ex,
+ 780@test.ex, 781@test.ex, 782@test.ex, 783@test.ex, 784@test.ex,
+ 785@test.ex, 786@test.ex, 787@test.ex, 788@test.ex, 789@test.ex,
+ 790@test.ex, 791@test.ex, 792@test.ex, 793@test.ex, 794@test.ex,
+ 795@test.ex, 796@test.ex, 797@test.ex, 798@test.ex, 799@test.ex,
+ 800@test.ex, 801@test.ex, 802@test.ex, 803@test.ex, 804@test.ex,
+ 805@test.ex, 806@test.ex, 807@test.ex, 808@test.ex, 809@test.ex,
+ 810@test.ex, 811@test.ex, 812@test.ex, 813@test.ex, 814@test.ex,
+ 815@test.ex, 816@test.ex, 817@test.ex, 818@test.ex, 819@test.ex,
+ 820@test.ex, 821@test.ex, 822@test.ex, 823@test.ex, 824@test.ex,
+ 825@test.ex, 826@test.ex, 827@test.ex, 828@test.ex, 829@test.ex,
+ 830@test.ex, 831@test.ex, 832@test.ex, 833@test.ex, 834@test.ex,
+ 835@test.ex, 836@test.ex, 837@test.ex, 838@test.ex, 839@test.ex,
+ 840@test.ex, 841@test.ex, 842@test.ex, 843@test.ex, 844@test.ex,
+ 845@test.ex, 846@test.ex, 847@test.ex, 848@test.ex, 849@test.ex,
+ 850@test.ex, 851@test.ex, 852@test.ex, 853@test.ex, 854@test.ex,
+ 855@test.ex, 856@test.ex, 857@test.ex, 858@test.ex, 859@test.ex,
+ 860@test.ex, 861@test.ex, 862@test.ex, 863@test.ex, 864@test.ex,
+ 865@test.ex, 866@test.ex, 867@test.ex, 868@test.ex, 869@test.ex,
+ 870@test.ex, 871@test.ex, 872@test.ex, 873@test.ex, 874@test.ex,
+ 875@test.ex, 876@test.ex, 877@test.ex, 878@test.ex, 879@test.ex,
+ 880@test.ex, 881@test.ex, 882@test.ex, 883@test.ex, 884@test.ex,
+ 885@test.ex, 886@test.ex, 887@test.ex, 888@test.ex, 889@test.ex,
+ 890@test.ex, 891@test.ex, 892@test.ex, 893@test.ex, 894@test.ex,
+ 895@test.ex, 896@test.ex, 897@test.ex, 898@test.ex, 899@test.ex,
+ 900@test.ex, 901@test.ex, 902@test.ex, 903@test.ex, 904@test.ex,
+ 905@test.ex, 906@test.ex, 907@test.ex, 908@test.ex, 909@test.ex,
+ 910@test.ex, 911@test.ex, 912@test.ex, 913@test.ex, 914@test.ex,
+ 915@test.ex, 916@test.ex, 917@test.ex, 918@test.ex, 919@test.ex,
+ 920@test.ex, 921@test.ex, 922@test.ex, 923@test.ex, 924@test.ex,
+ 925@test.ex, 926@test.ex, 927@test.ex, 928@test.ex, 929@test.ex,
+ 930@test.ex, 931@test.ex, 932@test.ex, 933@test.ex, 934@test.ex,
+ 935@test.ex, 936@test.ex, 937@test.ex, 938@test.ex, 939@test.ex,
+ 940@test.ex, 941@test.ex, 942@test.ex, 943@test.ex, 944@test.ex,
+ 945@test.ex, 946@test.ex, 947@test.ex, 948@test.ex, 949@test.ex,
+ 950@test.ex, 951@test.ex, 952@test.ex, 953@test.ex, 954@test.ex,
+ 955@test.ex, 956@test.ex, 957@test.ex, 958@test.ex, 959@test.ex,
+ 960@test.ex, 961@test.ex, 962@test.ex, 963@test.ex, 964@test.ex,
+ 965@test.ex, 966@test.ex, 967@test.ex, 968@test.ex, 969@test.ex,
+ 970@test.ex, 971@test.ex, 972@test.ex, 973@test.ex, 974@test.ex,
+ 975@test.ex, 976@test.ex, 977@test.ex, 978@test.ex, 979@test.ex,
+ 980@test.ex, 981@test.ex, 982@test.ex, 983@test.ex, 984@test.ex,
+ 985@test.ex, 986@test.ex, 987@test.ex, 988@test.ex, 989@test.ex,
+ 990@test.ex, 991@test.ex, 992@test.ex, 993@test.ex, 994@test.ex,
+ 995@test.ex, 996@test.ex, 997@test.ex, 998@test.ex, 999@test.ex
+
+Here is a very short message.
+.
+****
+no_msglog_check