diff options
Diffstat (limited to 'test')
714 files changed, 20581 insertions, 0 deletions
diff --git a/test/scripts/0000-Basic/0001 b/test/scripts/0000-Basic/0001 new file mode 100644 index 000000000..039c7a668 --- /dev/null +++ b/test/scripts/0000-Basic/0001 @@ -0,0 +1,29 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0002 b/test/scripts/0000-Basic/0002 new file mode 100644 index 000000000..eaa0dd82a --- /dev/null +++ b/test/scripts/0000-Basic/0002 @@ -0,0 +1,678 @@ +# 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Àÿ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 +**** diff --git a/test/scripts/0000-Basic/0003 b/test/scripts/0000-Basic/0003 new file mode 100644 index 000000000..58868bb67 --- /dev/null +++ b/test/scripts/0000-Basic/0003 @@ -0,0 +1,101 @@ +# 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 diff --git a/test/scripts/0000-Basic/0004 b/test/scripts/0000-Basic/0004 new file mode 100644 index 000000000..2732d001e --- /dev/null +++ b/test/scripts/0000-Basic/0004 @@ -0,0 +1,109 @@ +# 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> diff --git a/test/scripts/0000-Basic/0005 b/test/scripts/0000-Basic/0005 new file mode 100644 index 000000000..8e7b0d8c1 --- /dev/null +++ b/test/scripts/0000-Basic/0005 @@ -0,0 +1,34 @@ +# -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 +**** diff --git a/test/scripts/0000-Basic/0006 b/test/scripts/0000-Basic/0006 new file mode 100644 index 000000000..6db44fbb6 --- /dev/null +++ b/test/scripts/0000-Basic/0006 @@ -0,0 +1,28 @@ +# -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 diff --git a/test/scripts/0000-Basic/0007 b/test/scripts/0000-Basic/0007 new file mode 100644 index 000000000..c129b76d6 --- /dev/null +++ b/test/scripts/0000-Basic/0007 @@ -0,0 +1,12 @@ +# -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 diff --git a/test/scripts/0000-Basic/0008 b/test/scripts/0000-Basic/0008 new file mode 100644 index 000000000..a77bf01b3 --- /dev/null +++ b/test/scripts/0000-Basic/0008 @@ -0,0 +1,23 @@ +# -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 diff --git a/test/scripts/0000-Basic/0009 b/test/scripts/0000-Basic/0009 new file mode 100644 index 000000000..b4c3025c3 --- /dev/null +++ b/test/scripts/0000-Basic/0009 @@ -0,0 +1,22 @@ +# -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 diff --git a/test/scripts/0000-Basic/0010 b/test/scripts/0000-Basic/0010 new file mode 100644 index 000000000..a53363592 --- /dev/null +++ b/test/scripts/0000-Basic/0010 @@ -0,0 +1,20 @@ +# -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 . diff --git a/test/scripts/0000-Basic/0011 b/test/scripts/0000-Basic/0011 new file mode 100644 index 000000000..2a9412f4a --- /dev/null +++ b/test/scripts/0000-Basic/0011 @@ -0,0 +1,17 @@ +# -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 diff --git a/test/scripts/0000-Basic/0012 b/test/scripts/0000-Basic/0012 new file mode 100644 index 000000000..e81082388 --- /dev/null +++ b/test/scripts/0000-Basic/0012 @@ -0,0 +1,14 @@ +# -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... +. diff --git a/test/scripts/0000-Basic/0013 b/test/scripts/0000-Basic/0013 new file mode 100644 index 000000000..b2c9b63d7 --- /dev/null +++ b/test/scripts/0000-Basic/0013 @@ -0,0 +1,6 @@ +# Data after quoted string +no_stdout_check +1 +exim -bV +**** + diff --git a/test/scripts/0000-Basic/0014 b/test/scripts/0000-Basic/0014 new file mode 100644 index 000000000..a3c939a1b --- /dev/null +++ b/test/scripts/0000-Basic/0014 @@ -0,0 +1,42 @@ +# 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 diff --git a/test/scripts/0000-Basic/0015 b/test/scripts/0000-Basic/0015 new file mode 100644 index 000000000..4c8c5e7e4 --- /dev/null +++ b/test/scripts/0000-Basic/0015 @@ -0,0 +1,50 @@ +# 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. +**** diff --git a/test/scripts/0000-Basic/0016 b/test/scripts/0000-Basic/0016 new file mode 100644 index 000000000..d2b07d281 --- /dev/null +++ b/test/scripts/0000-Basic/0016 @@ -0,0 +1,3 @@ +# local part suffix +exim -odi userx+page +Some message text. diff --git a/test/scripts/0000-Basic/0017 b/test/scripts/0000-Basic/0017 new file mode 100644 index 000000000..7523c7fa4 --- /dev/null +++ b/test/scripts/0000-Basic/0017 @@ -0,0 +1,13 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0018 b/test/scripts/0000-Basic/0018 new file mode 100644 index 000000000..a6857ae28 --- /dev/null +++ b/test/scripts/0000-Basic/0018 @@ -0,0 +1,4 @@ +# ETRN (permitted host) +exim -bh 127.0.0.1 +etrn #some.random.domain +quit diff --git a/test/scripts/0000-Basic/0019 b/test/scripts/0000-Basic/0019 new file mode 100644 index 000000000..fd646eb81 --- /dev/null +++ b/test/scripts/0000-Basic/0019 @@ -0,0 +1,38 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0020 b/test/scripts/0000-Basic/0020 new file mode 100644 index 000000000..55f4c94ed --- /dev/null +++ b/test/scripts/0000-Basic/0020 @@ -0,0 +1,9 @@ +# -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 +**** diff --git a/test/scripts/0000-Basic/0021 b/test/scripts/0000-Basic/0021 new file mode 100644 index 000000000..2ec354ffd --- /dev/null +++ b/test/scripts/0000-Basic/0021 @@ -0,0 +1,50 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0022 b/test/scripts/0000-Basic/0022 new file mode 100644 index 000000000..92d955171 --- /dev/null +++ b/test/scripts/0000-Basic/0022 @@ -0,0 +1,146 @@ +# 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 diff --git a/test/scripts/0000-Basic/0023 b/test/scripts/0000-Basic/0023 new file mode 100644 index 000000000..1f9cb2ee8 --- /dev/null +++ b/test/scripts/0000-Basic/0023 @@ -0,0 +1,333 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0024 b/test/scripts/0000-Basic/0024 new file mode 100644 index 000000000..ca6a2b4a0 --- /dev/null +++ b/test/scripts/0000-Basic/0024 @@ -0,0 +1,92 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0025 b/test/scripts/0000-Basic/0025 new file mode 100644 index 000000000..8d5e00512 --- /dev/null +++ b/test/scripts/0000-Basic/0025 @@ -0,0 +1,16 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0026 b/test/scripts/0000-Basic/0026 new file mode 100644 index 000000000..e81e0d9d0 --- /dev/null +++ b/test/scripts/0000-Basic/0026 @@ -0,0 +1,107 @@ +# 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 diff --git a/test/scripts/0000-Basic/0027 b/test/scripts/0000-Basic/0027 new file mode 100644 index 000000000..606c1095f --- /dev/null +++ b/test/scripts/0000-Basic/0027 @@ -0,0 +1,53 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0028 b/test/scripts/0000-Basic/0028 new file mode 100644 index 000000000..4cf458d4e --- /dev/null +++ b/test/scripts/0000-Basic/0028 @@ -0,0 +1,18 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0029 b/test/scripts/0000-Basic/0029 new file mode 100644 index 000000000..d1f297e24 --- /dev/null +++ b/test/scripts/0000-Basic/0029 @@ -0,0 +1,15 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0030 b/test/scripts/0000-Basic/0030 new file mode 100644 index 000000000..b200e2704 --- /dev/null +++ b/test/scripts/0000-Basic/0030 @@ -0,0 +1,7 @@ +# Use of $address_data in ACL +exim -bs +mail from:<> +rcpt to:<ok@test.ex> +rcpt to:<notok@test.ex> +quit +**** diff --git a/test/scripts/0000-Basic/0031 b/test/scripts/0000-Basic/0031 new file mode 100644 index 000000000..8c05fbbbd --- /dev/null +++ b/test/scripts/0000-Basic/0031 @@ -0,0 +1,9 @@ +# 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. diff --git a/test/scripts/0000-Basic/0032 b/test/scripts/0000-Basic/0032 new file mode 100644 index 000000000..d25c95d38 --- /dev/null +++ b/test/scripts/0000-Basic/0032 @@ -0,0 +1,4 @@ +# Bounce message for MX->localhost +exim -odi userx@mxt1.test.ex +This is a test message. +**** diff --git a/test/scripts/0000-Basic/0033 b/test/scripts/0000-Basic/0033 new file mode 100644 index 000000000..8c188c9a9 --- /dev/null +++ b/test/scripts/0000-Basic/0033 @@ -0,0 +1,51 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0034 b/test/scripts/0000-Basic/0034 new file mode 100644 index 000000000..1c8c38016 --- /dev/null +++ b/test/scripts/0000-Basic/0034 @@ -0,0 +1,87 @@ +# 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 diff --git a/test/scripts/0000-Basic/0035 b/test/scripts/0000-Basic/0035 new file mode 100644 index 000000000..8a49f9491 --- /dev/null +++ b/test/scripts/0000-Basic/0035 @@ -0,0 +1,121 @@ +# 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 diff --git a/test/scripts/0000-Basic/0036 b/test/scripts/0000-Basic/0036 new file mode 100644 index 000000000..b4155ac13 --- /dev/null +++ b/test/scripts/0000-Basic/0036 @@ -0,0 +1,15 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0037 b/test/scripts/0000-Basic/0037 new file mode 100644 index 000000000..be3aa94cd --- /dev/null +++ b/test/scripts/0000-Basic/0037 @@ -0,0 +1,174 @@ +# 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 diff --git a/test/scripts/0000-Basic/0038 b/test/scripts/0000-Basic/0038 new file mode 100644 index 000000000..6ba85d3cf --- /dev/null +++ b/test/scripts/0000-Basic/0038 @@ -0,0 +1,48 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0039 b/test/scripts/0000-Basic/0039 new file mode 100644 index 000000000..4c996291b --- /dev/null +++ b/test/scripts/0000-Basic/0039 @@ -0,0 +1,5 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0040 b/test/scripts/0000-Basic/0040 new file mode 100644 index 000000000..3353ec233 --- /dev/null +++ b/test/scripts/0000-Basic/0040 @@ -0,0 +1,3 @@ +# 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. diff --git a/test/scripts/0000-Basic/0041 b/test/scripts/0000-Basic/0041 new file mode 100644 index 000000000..5601d6506 --- /dev/null +++ b/test/scripts/0000-Basic/0041 @@ -0,0 +1,14 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0042 b/test/scripts/0000-Basic/0042 new file mode 100644 index 000000000..a0b2e4f2c --- /dev/null +++ b/test/scripts/0000-Basic/0042 @@ -0,0 +1,5 @@ +# VRFY logging failures +exim -bh 1.1.1.1 +vrfy userx@test.ex +vrfy junkjunk@test.ex +quit diff --git a/test/scripts/0000-Basic/0043 b/test/scripts/0000-Basic/0043 new file mode 100644 index 000000000..63a0f99c0 --- /dev/null +++ b/test/scripts/0000-Basic/0043 @@ -0,0 +1,11 @@ +# 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 diff --git a/test/scripts/0000-Basic/0044 b/test/scripts/0000-Basic/0044 new file mode 100644 index 000000000..90870b700 --- /dev/null +++ b/test/scripts/0000-Basic/0044 @@ -0,0 +1,21 @@ +# 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 diff --git a/test/scripts/0000-Basic/0045 b/test/scripts/0000-Basic/0045 new file mode 100644 index 000000000..1b3aae09d --- /dev/null +++ b/test/scripts/0000-Basic/0045 @@ -0,0 +1,31 @@ +# 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 diff --git a/test/scripts/0000-Basic/0046 b/test/scripts/0000-Basic/0046 Binary files differnew file mode 100644 index 000000000..62d7ec83b --- /dev/null +++ b/test/scripts/0000-Basic/0046 diff --git a/test/scripts/0000-Basic/0047 b/test/scripts/0000-Basic/0047 new file mode 100644 index 000000000..86a40fbf7 --- /dev/null +++ b/test/scripts/0000-Basic/0047 @@ -0,0 +1,6 @@ +# domain matching in manualroute router +exim -bt xx@domain1 +**** +exim -bt xx@route1.ex +**** +exim -bt xx@domain3 diff --git a/test/scripts/0000-Basic/0048 b/test/scripts/0000-Basic/0048 new file mode 100644 index 000000000..47815e80c --- /dev/null +++ b/test/scripts/0000-Basic/0048 @@ -0,0 +1,16 @@ +# 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. +**** diff --git a/test/scripts/0000-Basic/0049 b/test/scripts/0000-Basic/0049 new file mode 100644 index 000000000..e3146a083 --- /dev/null +++ b/test/scripts/0000-Basic/0049 @@ -0,0 +1,70 @@ +# 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 + diff --git a/test/scripts/0000-Basic/0050 b/test/scripts/0000-Basic/0050 new file mode 100644 index 000000000..82e5cad0e --- /dev/null +++ b/test/scripts/0000-Basic/0050 @@ -0,0 +1,75 @@ +# 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 + diff --git a/test/scripts/0000-Basic/0051 b/test/scripts/0000-Basic/0051 new file mode 100644 index 000000000..2651d99dd --- /dev/null +++ b/test/scripts/0000-Basic/0051 @@ -0,0 +1,24 @@ +# 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. diff --git a/test/scripts/0000-Basic/0052 b/test/scripts/0000-Basic/0052 new file mode 100644 index 000000000..279a82348 --- /dev/null +++ b/test/scripts/0000-Basic/0052 @@ -0,0 +1,12 @@ +# 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. diff --git a/test/scripts/0000-Basic/0053 b/test/scripts/0000-Basic/0053 new file mode 100644 index 000000000..b35a94c5b --- /dev/null +++ b/test/scripts/0000-Basic/0053 @@ -0,0 +1,5 @@ +# Aliases including domains +exim -bt bar@domain1.ex +**** +2 +exim -bt foobar@domain1.ex diff --git a/test/scripts/0000-Basic/0054 b/test/scripts/0000-Basic/0054 new file mode 100644 index 000000000..703779c78 --- /dev/null +++ b/test/scripts/0000-Basic/0054 @@ -0,0 +1,6 @@ +# mx_domains +exim -bt xxx@ten-1.test.ex +**** +2 +exim -bt xxx@ten-2.test.ex +**** diff --git a/test/scripts/0000-Basic/0055 b/test/scripts/0000-Basic/0055 new file mode 100644 index 000000000..cc06129fe --- /dev/null +++ b/test/scripts/0000-Basic/0055 @@ -0,0 +1,33 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0056 b/test/scripts/0000-Basic/0056 new file mode 100644 index 000000000..5e033ce1e --- /dev/null +++ b/test/scripts/0000-Basic/0056 @@ -0,0 +1,11 @@ +# 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 diff --git a/test/scripts/0000-Basic/0057 b/test/scripts/0000-Basic/0057 new file mode 100644 index 000000000..0c39e13ec --- /dev/null +++ b/test/scripts/0000-Basic/0057 @@ -0,0 +1,19 @@ +# 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 diff --git a/test/scripts/0000-Basic/0058 b/test/scripts/0000-Basic/0058 new file mode 100644 index 000000000..4b0771444 --- /dev/null +++ b/test/scripts/0000-Basic/0058 @@ -0,0 +1,13 @@ +# 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 diff --git a/test/scripts/0000-Basic/0059 b/test/scripts/0000-Basic/0059 new file mode 100644 index 000000000..85c971651 --- /dev/null +++ b/test/scripts/0000-Basic/0059 @@ -0,0 +1,10 @@ +# 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 diff --git a/test/scripts/0000-Basic/0060 b/test/scripts/0000-Basic/0060 new file mode 100644 index 000000000..87981047c --- /dev/null +++ b/test/scripts/0000-Basic/0060 @@ -0,0 +1,66 @@ +# 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 diff --git a/test/scripts/0000-Basic/0061 b/test/scripts/0000-Basic/0061 new file mode 100644 index 000000000..5177f8eac --- /dev/null +++ b/test/scripts/0000-Basic/0061 @@ -0,0 +1,18 @@ +# 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 diff --git a/test/scripts/0000-Basic/0062 b/test/scripts/0000-Basic/0062 new file mode 100644 index 000000000..b5802a0f4 --- /dev/null +++ b/test/scripts/0000-Basic/0062 @@ -0,0 +1,26 @@ +# 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 diff --git a/test/scripts/0000-Basic/0063 b/test/scripts/0000-Basic/0063 new file mode 100644 index 000000000..61abb6ef1 --- /dev/null +++ b/test/scripts/0000-Basic/0063 @@ -0,0 +1,18 @@ +# 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 diff --git a/test/scripts/0000-Basic/0064 b/test/scripts/0000-Basic/0064 new file mode 100644 index 000000000..a6ff0df12 --- /dev/null +++ b/test/scripts/0000-Basic/0064 @@ -0,0 +1,18 @@ +# 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 diff --git a/test/scripts/0000-Basic/0065 b/test/scripts/0000-Basic/0065 new file mode 100644 index 000000000..d7862004c --- /dev/null +++ b/test/scripts/0000-Basic/0065 @@ -0,0 +1,58 @@ +# 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 diff --git a/test/scripts/0000-Basic/0066 b/test/scripts/0000-Basic/0066 new file mode 100644 index 000000000..cb4492ed1 --- /dev/null +++ b/test/scripts/0000-Basic/0066 @@ -0,0 +1,74 @@ +# 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 diff --git a/test/scripts/0000-Basic/0067 b/test/scripts/0000-Basic/0067 new file mode 100644 index 000000000..5212719c3 --- /dev/null +++ b/test/scripts/0000-Basic/0067 @@ -0,0 +1,95 @@ +# 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 diff --git a/test/scripts/0000-Basic/0068 b/test/scripts/0000-Basic/0068 new file mode 100644 index 000000000..dd8cce033 --- /dev/null +++ b/test/scripts/0000-Basic/0068 @@ -0,0 +1,13 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0069 b/test/scripts/0000-Basic/0069 new file mode 100644 index 000000000..5afefcec5 --- /dev/null +++ b/test/scripts/0000-Basic/0069 @@ -0,0 +1,26 @@ +# +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 +**** diff --git a/test/scripts/0000-Basic/0070 b/test/scripts/0000-Basic/0070 new file mode 100644 index 000000000..67d53b828 --- /dev/null +++ b/test/scripts/0000-Basic/0070 @@ -0,0 +1,60 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0071 b/test/scripts/0000-Basic/0071 new file mode 100644 index 000000000..5cfb6097c --- /dev/null +++ b/test/scripts/0000-Basic/0071 @@ -0,0 +1,3 @@ +# pipe transport not set +exim -odi pipe +Some message text. diff --git a/test/scripts/0000-Basic/0072 b/test/scripts/0000-Basic/0072 new file mode 100644 index 000000000..14bc9f4a8 --- /dev/null +++ b/test/scripts/0000-Basic/0072 @@ -0,0 +1,38 @@ +# autoreply +exim -odi userx@test.ex +Subject: first message; non-printer >
< +**** +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. +**** diff --git a/test/scripts/0000-Basic/0073 b/test/scripts/0000-Basic/0073 new file mode 100644 index 000000000..346bc0f43 --- /dev/null +++ b/test/scripts/0000-Basic/0073 @@ -0,0 +1,10 @@ +# 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 diff --git a/test/scripts/0000-Basic/0074 b/test/scripts/0000-Basic/0074 new file mode 100644 index 000000000..04923ef60 --- /dev/null +++ b/test/scripts/0000-Basic/0074 @@ -0,0 +1,20 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0075 b/test/scripts/0000-Basic/0075 new file mode 100644 index 000000000..b28b4d229 --- /dev/null +++ b/test/scripts/0000-Basic/0075 @@ -0,0 +1,3 @@ +# appendfile subdirectory with create_directory +exim -odi userx@test.ex +Subject: first message diff --git a/test/scripts/0000-Basic/0076 b/test/scripts/0000-Basic/0076 new file mode 100644 index 000000000..9e6f3116f --- /dev/null +++ b/test/scripts/0000-Basic/0076 @@ -0,0 +1,3 @@ +# appendfile subdirectory without create_directory +exim -odi userx@test.ex +Subject: first message diff --git a/test/scripts/0000-Basic/0077 b/test/scripts/0000-Basic/0077 new file mode 100644 index 000000000..715bd289e --- /dev/null +++ b/test/scripts/0000-Basic/0077 @@ -0,0 +1,15 @@ +# 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 diff --git a/test/scripts/0000-Basic/0078 b/test/scripts/0000-Basic/0078 new file mode 100644 index 000000000..0333aa3f3 --- /dev/null +++ b/test/scripts/0000-Basic/0078 @@ -0,0 +1,10 @@ +# 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 diff --git a/test/scripts/0000-Basic/0079 b/test/scripts/0000-Basic/0079 new file mode 100644 index 000000000..0875ed0c4 --- /dev/null +++ b/test/scripts/0000-Basic/0079 @@ -0,0 +1,40 @@ +# 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 diff --git a/test/scripts/0000-Basic/0080 b/test/scripts/0000-Basic/0080 new file mode 100644 index 000000000..12a7de2d1 --- /dev/null +++ b/test/scripts/0000-Basic/0080 @@ -0,0 +1,12 @@ +# 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 diff --git a/test/scripts/0000-Basic/0081 b/test/scripts/0000-Basic/0081 new file mode 100644 index 000000000..a392fd166 --- /dev/null +++ b/test/scripts/0000-Basic/0081 @@ -0,0 +1,11 @@ +# 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. diff --git a/test/scripts/0000-Basic/0082 b/test/scripts/0000-Basic/0082 new file mode 100644 index 000000000..77bcdbfa8 --- /dev/null +++ b/test/scripts/0000-Basic/0082 @@ -0,0 +1,11 @@ +# -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 diff --git a/test/scripts/0000-Basic/0083 b/test/scripts/0000-Basic/0083 new file mode 100644 index 000000000..0aa9d93e9 --- /dev/null +++ b/test/scripts/0000-Basic/0083 @@ -0,0 +1,11 @@ +# -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 diff --git a/test/scripts/0000-Basic/0084 b/test/scripts/0000-Basic/0084 new file mode 100644 index 000000000..4227199b4 --- /dev/null +++ b/test/scripts/0000-Basic/0084 @@ -0,0 +1,2 @@ +# require_files +exim -d-all+route -bv yes@myhost.test.ex no@myhost.test.ex diff --git a/test/scripts/0000-Basic/0085 b/test/scripts/0000-Basic/0085 new file mode 100644 index 000000000..3d0f5131b --- /dev/null +++ b/test/scripts/0000-Basic/0085 @@ -0,0 +1,6 @@ +# 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 diff --git a/test/scripts/0000-Basic/0086 b/test/scripts/0000-Basic/0086 new file mode 100644 index 000000000..0a7582ebe --- /dev/null +++ b/test/scripts/0000-Basic/0086 @@ -0,0 +1,120 @@ +# 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 diff --git a/test/scripts/0000-Basic/0087 b/test/scripts/0000-Basic/0087 new file mode 100644 index 000000000..c77b69cc4 --- /dev/null +++ b/test/scripts/0000-Basic/0087 @@ -0,0 +1,62 @@ +# 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 diff --git a/test/scripts/0000-Basic/0088 b/test/scripts/0000-Basic/0088 new file mode 100644 index 000000000..63f3f0f16 --- /dev/null +++ b/test/scripts/0000-Basic/0088 @@ -0,0 +1,3 @@ +# hosts_treat_as_local +1 +exim -bv xx@ten-1.test.ex xx@ten-99.test.ex xx@mxcased.test.ex diff --git a/test/scripts/0000-Basic/0089 b/test/scripts/0000-Basic/0089 new file mode 100644 index 000000000..d7ddbd6cb --- /dev/null +++ b/test/scripts/0000-Basic/0089 @@ -0,0 +1,23 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0090 b/test/scripts/0000-Basic/0090 new file mode 100644 index 000000000..c99777f2d --- /dev/null +++ b/test/scripts/0000-Basic/0090 @@ -0,0 +1,3 @@ +# address list !: +exim -odi userx +This is a test message diff --git a/test/scripts/0000-Basic/0091 b/test/scripts/0000-Basic/0091 new file mode 100644 index 000000000..89025e757 --- /dev/null +++ b/test/scripts/0000-Basic/0091 @@ -0,0 +1,33 @@ +# 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 diff --git a/test/scripts/0000-Basic/0092 b/test/scripts/0000-Basic/0092 new file mode 100644 index 000000000..78c713e1c --- /dev/null +++ b/test/scripts/0000-Basic/0092 @@ -0,0 +1,41 @@ +# 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 diff --git a/test/scripts/0000-Basic/0093 b/test/scripts/0000-Basic/0093 new file mode 100644 index 000000000..576e738df --- /dev/null +++ b/test/scripts/0000-Basic/0093 @@ -0,0 +1,27 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0094 b/test/scripts/0000-Basic/0094 new file mode 100644 index 000000000..9a915e06f --- /dev/null +++ b/test/scripts/0000-Basic/0094 @@ -0,0 +1,41 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0095 b/test/scripts/0000-Basic/0095 new file mode 100644 index 000000000..45b6a7053 --- /dev/null +++ b/test/scripts/0000-Basic/0095 @@ -0,0 +1,35 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0096 b/test/scripts/0000-Basic/0096 new file mode 100644 index 000000000..935f91f1a --- /dev/null +++ b/test/scripts/0000-Basic/0096 @@ -0,0 +1,7 @@ +# 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 diff --git a/test/scripts/0000-Basic/0097 b/test/scripts/0000-Basic/0097 new file mode 100644 index 000000000..2470159de --- /dev/null +++ b/test/scripts/0000-Basic/0097 @@ -0,0 +1,8 @@ +# 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 diff --git a/test/scripts/0000-Basic/0098 b/test/scripts/0000-Basic/0098 new file mode 100644 index 000000000..18f348718 --- /dev/null +++ b/test/scripts/0000-Basic/0098 @@ -0,0 +1,41 @@ +# 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 diff --git a/test/scripts/0000-Basic/0099 b/test/scripts/0000-Basic/0099 new file mode 100644 index 000000000..d770eef54 --- /dev/null +++ b/test/scripts/0000-Basic/0099 @@ -0,0 +1,41 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0100 b/test/scripts/0000-Basic/0100 new file mode 100644 index 000000000..a8cf6863d --- /dev/null +++ b/test/scripts/0000-Basic/0100 @@ -0,0 +1,142 @@ +# 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 + +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. +**** diff --git a/test/scripts/0000-Basic/0101 b/test/scripts/0000-Basic/0101 new file mode 100644 index 000000000..12f73c0b8 --- /dev/null +++ b/test/scripts/0000-Basic/0101 @@ -0,0 +1,92 @@ +# 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 + +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. diff --git a/test/scripts/0000-Basic/0102 b/test/scripts/0000-Basic/0102 new file mode 100644 index 000000000..a6a6f6eb7 --- /dev/null +++ b/test/scripts/0000-Basic/0102 @@ -0,0 +1,40 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0103 b/test/scripts/0000-Basic/0103 new file mode 100644 index 000000000..13c9918ae --- /dev/null +++ b/test/scripts/0000-Basic/0103 @@ -0,0 +1,16 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0104 b/test/scripts/0000-Basic/0104 new file mode 100644 index 000000000..f4f902698 --- /dev/null +++ b/test/scripts/0000-Basic/0104 @@ -0,0 +1,9 @@ +# 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> +**** diff --git a/test/scripts/0000-Basic/0105 b/test/scripts/0000-Basic/0105 new file mode 100644 index 000000000..156ed6c22 --- /dev/null +++ b/test/scripts/0000-Basic/0105 @@ -0,0 +1,13 @@ +# 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 +. +**** diff --git a/test/scripts/0000-Basic/0106 b/test/scripts/0000-Basic/0106 new file mode 100644 index 000000000..e829b7cad --- /dev/null +++ b/test/scripts/0000-Basic/0106 @@ -0,0 +1,22 @@ +# 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 +. +**** diff --git a/test/scripts/0000-Basic/0107 b/test/scripts/0000-Basic/0107 new file mode 100644 index 000000000..1dd0f5251 --- /dev/null +++ b/test/scripts/0000-Basic/0107 @@ -0,0 +1,9 @@ +# 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 diff --git a/test/scripts/0000-Basic/0108 b/test/scripts/0000-Basic/0108 new file mode 100644 index 000000000..ffe9f660d --- /dev/null +++ b/test/scripts/0000-Basic/0108 @@ -0,0 +1,6 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0109 b/test/scripts/0000-Basic/0109 new file mode 100644 index 000000000..97b7d1f13 --- /dev/null +++ b/test/scripts/0000-Basic/0109 @@ -0,0 +1,5 @@ +# fallback hosts +need_ipv4 +# +exim -odi xx@non-exist.test.ex +**** diff --git a/test/scripts/0000-Basic/0110 b/test/scripts/0000-Basic/0110 new file mode 100644 index 000000000..8b0d33198 --- /dev/null +++ b/test/scripts/0000-Basic/0110 @@ -0,0 +1,5 @@ +# one_time in aliasfile +exim -odi first +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0111 b/test/scripts/0000-Basic/0111 new file mode 100644 index 000000000..053d40b95 --- /dev/null +++ b/test/scripts/0000-Basic/0111 @@ -0,0 +1,10 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0112 b/test/scripts/0000-Basic/0112 new file mode 100644 index 000000000..947ea2426 --- /dev/null +++ b/test/scripts/0000-Basic/0112 @@ -0,0 +1,7 @@ +# pipe and file deliveries from aliasfile +exim -odi pipe +Message to pipe. +**** +exim -odi file +Message to file. +**** diff --git a/test/scripts/0000-Basic/0113 b/test/scripts/0000-Basic/0113 new file mode 100644 index 000000000..1779abc11 --- /dev/null +++ b/test/scripts/0000-Basic/0113 @@ -0,0 +1,5 @@ +# one_time in forwardfile +exim -odi first +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0114 b/test/scripts/0000-Basic/0114 new file mode 100644 index 000000000..b41b7c3a6 --- /dev/null +++ b/test/scripts/0000-Basic/0114 @@ -0,0 +1,13 @@ +# 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. +**** diff --git a/test/scripts/0000-Basic/0115 b/test/scripts/0000-Basic/0115 new file mode 100644 index 000000000..5a94670b7 --- /dev/null +++ b/test/scripts/0000-Basic/0115 @@ -0,0 +1,13 @@ +# 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. +**** diff --git a/test/scripts/0000-Basic/0116 b/test/scripts/0000-Basic/0116 new file mode 100644 index 000000000..839e0cb70 --- /dev/null +++ b/test/scripts/0000-Basic/0116 @@ -0,0 +1,9 @@ +# unseen (including address_data passing) +exim -odi dcopy defer +Message sent to dcopy. +**** +exim -odi acopy defer +Message sent to acopy. +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0117 b/test/scripts/0000-Basic/0117 new file mode 100644 index 000000000..8c1196988 --- /dev/null +++ b/test/scripts/0000-Basic/0117 @@ -0,0 +1,11 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0118 b/test/scripts/0000-Basic/0118 new file mode 100644 index 000000000..76f94e327 --- /dev/null +++ b/test/scripts/0000-Basic/0118 @@ -0,0 +1,7 @@ +# first_delivery and queue_running +exim -odi userx +**** +exim -M $msg1 +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0119 b/test/scripts/0000-Basic/0119 new file mode 100644 index 000000000..01b111fef --- /dev/null +++ b/test/scripts/0000-Basic/0119 @@ -0,0 +1,25 @@ +# -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 +**** diff --git a/test/scripts/0000-Basic/0120 b/test/scripts/0000-Basic/0120 new file mode 100644 index 000000000..a40e7cd07 --- /dev/null +++ b/test/scripts/0000-Basic/0120 @@ -0,0 +1,8 @@ +# $message_age +exim -odi postmaster +**** +exim -odi -qf +**** +sleep 3 +exim -odi -qf +**** diff --git a/test/scripts/0000-Basic/0121 b/test/scripts/0000-Basic/0121 new file mode 100644 index 000000000..4bcb99b47 --- /dev/null +++ b/test/scripts/0000-Basic/0121 @@ -0,0 +1,28 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0122 b/test/scripts/0000-Basic/0122 new file mode 100644 index 000000000..baa8e0b72 --- /dev/null +++ b/test/scripts/0000-Basic/0122 @@ -0,0 +1,7 @@ +# msglog frozen messages +exim -odi freeze +**** +exim -odi -f '<>' unknown +**** +sudo exim -odi -f '<>' unknown +**** diff --git a/test/scripts/0000-Basic/0123 b/test/scripts/0000-Basic/0123 new file mode 100644 index 000000000..9f5aac013 --- /dev/null +++ b/test/scripts/0000-Basic/0123 @@ -0,0 +1,4 @@ +# lookup_open_max +2 +exim -d -bt x y z +**** diff --git a/test/scripts/0000-Basic/0124 b/test/scripts/0000-Basic/0124 new file mode 100644 index 000000000..fccedda6b --- /dev/null +++ b/test/scripts/0000-Basic/0124 @@ -0,0 +1,9 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0125 b/test/scripts/0000-Basic/0125 new file mode 100644 index 000000000..0741f3067 --- /dev/null +++ b/test/scripts/0000-Basic/0125 @@ -0,0 +1,208 @@ +# 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 diff --git a/test/scripts/0000-Basic/0126 b/test/scripts/0000-Basic/0126 new file mode 100644 index 000000000..3a2ca2641 --- /dev/null +++ b/test/scripts/0000-Basic/0126 @@ -0,0 +1,3 @@ +# senders precondition in router +2 +exim -bt userx@test.ex diff --git a/test/scripts/0000-Basic/0127 b/test/scripts/0000-Basic/0127 new file mode 100644 index 000000000..430d425ce --- /dev/null +++ b/test/scripts/0000-Basic/0127 @@ -0,0 +1,70 @@ +# 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 + diff --git a/test/scripts/0000-Basic/0128 b/test/scripts/0000-Basic/0128 new file mode 100644 index 000000000..bb6a686d0 --- /dev/null +++ b/test/scripts/0000-Basic/0128 @@ -0,0 +1,4 @@ +# autoreply with failing once file +exim -odi userx@test.ex +Subject: first message; non-printer >
< +**** diff --git a/test/scripts/0000-Basic/0129 b/test/scripts/0000-Basic/0129 new file mode 100644 index 000000000..96491ba99 --- /dev/null +++ b/test/scripts/0000-Basic/0129 @@ -0,0 +1,4 @@ +# $domain_data +2 +exim -v -bv xxx@test.ex xxx@one.test.ex +**** diff --git a/test/scripts/0000-Basic/0130 b/test/scripts/0000-Basic/0130 new file mode 100644 index 000000000..11f0fb717 --- /dev/null +++ b/test/scripts/0000-Basic/0130 @@ -0,0 +1,13 @@ +# 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 diff --git a/test/scripts/0000-Basic/0131 b/test/scripts/0000-Basic/0131 new file mode 100644 index 000000000..1a1fad3cb --- /dev/null +++ b/test/scripts/0000-Basic/0131 @@ -0,0 +1,4 @@ +# self = pass with unseen filter +exim -odi userx@not.test.ex +Test message +. diff --git a/test/scripts/0000-Basic/0132 b/test/scripts/0000-Basic/0132 new file mode 100644 index 000000000..6f81d5fe5 --- /dev/null +++ b/test/scripts/0000-Basic/0132 @@ -0,0 +1,5 @@ +# deliver to a FIFO (nothing listening) +mkfifo -m 0600 DIR/test-fifo +exim -odi userx@test.ex +Test message +. diff --git a/test/scripts/0000-Basic/0133 b/test/scripts/0000-Basic/0133 new file mode 100644 index 000000000..da7848667 --- /dev/null +++ b/test/scripts/0000-Basic/0133 @@ -0,0 +1,4 @@ +# qualify_preserve_domain +exim -odi userx@a.test.ex, usery@b.test.ex +Test message +. diff --git a/test/scripts/0000-Basic/0134 b/test/scripts/0000-Basic/0134 new file mode 100644 index 000000000..76c1f8206 --- /dev/null +++ b/test/scripts/0000-Basic/0134 @@ -0,0 +1,33 @@ +# $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. +. +**** diff --git a/test/scripts/0000-Basic/0135 b/test/scripts/0000-Basic/0135 new file mode 100644 index 000000000..f8f661a43 --- /dev/null +++ b/test/scripts/0000-Basic/0135 @@ -0,0 +1,26 @@ +# 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 diff --git a/test/scripts/0000-Basic/0136 b/test/scripts/0000-Basic/0136 new file mode 100644 index 000000000..61afd6df6 --- /dev/null +++ b/test/scripts/0000-Basic/0136 @@ -0,0 +1,21 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0137 b/test/scripts/0000-Basic/0137 new file mode 100644 index 000000000..0335afe57 --- /dev/null +++ b/test/scripts/0000-Basic/0137 @@ -0,0 +1,26 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0138 b/test/scripts/0000-Basic/0138 new file mode 100644 index 000000000..66719f697 --- /dev/null +++ b/test/scripts/0000-Basic/0138 @@ -0,0 +1,21 @@ +# 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 diff --git a/test/scripts/0000-Basic/0139 b/test/scripts/0000-Basic/0139 new file mode 100644 index 000000000..6d613a7ca --- /dev/null +++ b/test/scripts/0000-Basic/0139 @@ -0,0 +1,27 @@ +# 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 diff --git a/test/scripts/0000-Basic/0140 b/test/scripts/0000-Basic/0140 new file mode 100644 index 000000000..74de75b6c --- /dev/null +++ b/test/scripts/0000-Basic/0140 @@ -0,0 +1,7 @@ +# autoreply with non-printing characters +exim -odi reply1@test.ex +Subject: first message; non-printer >< +**** +exim -odi reply2@test.ex +Subject: first message; non-printer >< +**** diff --git a/test/scripts/0000-Basic/0141 b/test/scripts/0000-Basic/0141 new file mode 100644 index 000000000..1c22139ef --- /dev/null +++ b/test/scripts/0000-Basic/0141 @@ -0,0 +1,12 @@ +# -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 +**** diff --git a/test/scripts/0000-Basic/0142 b/test/scripts/0000-Basic/0142 new file mode 100644 index 000000000..f43ae68a4 --- /dev/null +++ b/test/scripts/0000-Basic/0142 @@ -0,0 +1,5 @@ +# open file descriptor test +exim -odi pipe filter +Test message +. +**** diff --git a/test/scripts/0000-Basic/0143 b/test/scripts/0000-Basic/0143 new file mode 100644 index 000000000..41596d6b5 --- /dev/null +++ b/test/scripts/0000-Basic/0143 @@ -0,0 +1,23 @@ +# 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 +. +**** diff --git a/test/scripts/0000-Basic/0144 b/test/scripts/0000-Basic/0144 new file mode 100644 index 000000000..39701f1be --- /dev/null +++ b/test/scripts/0000-Basic/0144 @@ -0,0 +1,6 @@ +# DNS_AGAIN in manualroute +need_ipv4 +# +exim -odi x@remote.domain +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0145 b/test/scripts/0000-Basic/0145 new file mode 100644 index 000000000..44a37c329 --- /dev/null +++ b/test/scripts/0000-Basic/0145 @@ -0,0 +1,14 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0146 b/test/scripts/0000-Basic/0146 new file mode 100644 index 000000000..1fb8c2d01 --- /dev/null +++ b/test/scripts/0000-Basic/0146 @@ -0,0 +1,3 @@ +# MX pointing to IP address allowed +exim -bt x@mxt10.test.ex +**** diff --git a/test/scripts/0000-Basic/0147 b/test/scripts/0000-Basic/0147 new file mode 100644 index 000000000..aa3b8f6af --- /dev/null +++ b/test/scripts/0000-Basic/0147 @@ -0,0 +1,13 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0148 b/test/scripts/0000-Basic/0148 new file mode 100644 index 000000000..2ac079dec --- /dev/null +++ b/test/scripts/0000-Basic/0148 @@ -0,0 +1,4 @@ +# Missing quote in option value +1 +exim -bP log_file_path +**** diff --git a/test/scripts/0000-Basic/0149 b/test/scripts/0000-Basic/0149 new file mode 100644 index 000000000..3b3111638 --- /dev/null +++ b/test/scripts/0000-Basic/0149 @@ -0,0 +1,3 @@ +# List delimiters +exim -d-all+route -bv x@ten y@two x@test1 x@test2 x@test3-4 x@one x@six +**** diff --git a/test/scripts/0000-Basic/0150 b/test/scripts/0000-Basic/0150 new file mode 100644 index 000000000..0b3e6eb80 --- /dev/null +++ b/test/scripts/0000-Basic/0150 @@ -0,0 +1,6 @@ +# control of Sender: (default, includes Sender:) +exim -odi postmaster +From: not.the.login@test.ex +Test message +. +**** diff --git a/test/scripts/0000-Basic/0151 b/test/scripts/0000-Basic/0151 new file mode 100644 index 000000000..0b83c718f --- /dev/null +++ b/test/scripts/0000-Basic/0151 @@ -0,0 +1,6 @@ +# control of Sender: (no_local_sender_check) +exim -odi postmaster +From: not.the.login@test.ex +Test message +. +**** diff --git a/test/scripts/0000-Basic/0152 b/test/scripts/0000-Basic/0152 new file mode 100644 index 000000000..e5915d114 --- /dev/null +++ b/test/scripts/0000-Basic/0152 @@ -0,0 +1,41 @@ +# 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 +. +**** diff --git a/test/scripts/0000-Basic/0153 b/test/scripts/0000-Basic/0153 new file mode 100644 index 000000000..4415eb78b --- /dev/null +++ b/test/scripts/0000-Basic/0153 @@ -0,0 +1,7 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0154 b/test/scripts/0000-Basic/0154 new file mode 100644 index 000000000..2a7e19955 --- /dev/null +++ b/test/scripts/0000-Basic/0154 @@ -0,0 +1,35 @@ +# 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 diff --git a/test/scripts/0000-Basic/0155 b/test/scripts/0000-Basic/0155 new file mode 100644 index 000000000..3cf45f8af --- /dev/null +++ b/test/scripts/0000-Basic/0155 @@ -0,0 +1,35 @@ +# 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 diff --git a/test/scripts/0000-Basic/0156 b/test/scripts/0000-Basic/0156 new file mode 100644 index 000000000..4a51ff5f8 --- /dev/null +++ b/test/scripts/0000-Basic/0156 @@ -0,0 +1,10 @@ +# redirect router with forbids +1 +exim -bt defer file include +**** +exim -odi defer file include +**** +2 +exim -bt unknown +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0157 b/test/scripts/0000-Basic/0157 new file mode 100644 index 000000000..03d397893 --- /dev/null +++ b/test/scripts/0000-Basic/0157 @@ -0,0 +1,25 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0158 b/test/scripts/0000-Basic/0158 new file mode 100644 index 000000000..740bf4a8e --- /dev/null +++ b/test/scripts/0000-Basic/0158 @@ -0,0 +1,11 @@ +# deliver_drop_privilege and setuid=EXIMUSER +exim -odi CALLER +Testing +**** +exim -odi EXIMUSER +Testing +**** +exim_exim -odi EXIMUSER +Testing setuid EXIMUSER +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0159 b/test/scripts/0000-Basic/0159 new file mode 100644 index 000000000..adadf2d3a --- /dev/null +++ b/test/scripts/0000-Basic/0159 @@ -0,0 +1,81 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0160 b/test/scripts/0000-Basic/0160 new file mode 100644 index 000000000..0c699ce97 --- /dev/null +++ b/test/scripts/0000-Basic/0160 @@ -0,0 +1,38 @@ +# 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 diff --git a/test/scripts/0000-Basic/0161 b/test/scripts/0000-Basic/0161 new file mode 100644 index 000000000..0d453ea25 --- /dev/null +++ b/test/scripts/0000-Basic/0161 @@ -0,0 +1,18 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0162 b/test/scripts/0000-Basic/0162 new file mode 100644 index 000000000..6b24b20bb --- /dev/null +++ b/test/scripts/0000-Basic/0162 @@ -0,0 +1,354 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0163 b/test/scripts/0000-Basic/0163 new file mode 100644 index 000000000..c4500830d --- /dev/null +++ b/test/scripts/0000-Basic/0163 @@ -0,0 +1,25 @@ +# 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 diff --git a/test/scripts/0000-Basic/0164 b/test/scripts/0000-Basic/0164 new file mode 100644 index 000000000..1524f9be4 --- /dev/null +++ b/test/scripts/0000-Basic/0164 @@ -0,0 +1,5 @@ +# system filter $recipients test (no shell) +exim -odi pipe +**** +exim -odi pipe another a-third +**** diff --git a/test/scripts/0000-Basic/0165 b/test/scripts/0000-Basic/0165 new file mode 100644 index 000000000..09c1eac4a --- /dev/null +++ b/test/scripts/0000-Basic/0165 @@ -0,0 +1,5 @@ +# system filter $recipients test (with shell) +exim -odi pipe +**** +exim -odi pipe another a-third +**** diff --git a/test/scripts/0000-Basic/0166 b/test/scripts/0000-Basic/0166 new file mode 100644 index 000000000..effc4fe82 --- /dev/null +++ b/test/scripts/0000-Basic/0166 @@ -0,0 +1,2 @@ +# multiple headers_add in routers +exim -odi a diff --git a/test/scripts/0000-Basic/0167 b/test/scripts/0000-Basic/0167 new file mode 100644 index 000000000..2ec274a2f --- /dev/null +++ b/test/scripts/0000-Basic/0167 @@ -0,0 +1,11 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0168 b/test/scripts/0000-Basic/0168 new file mode 100644 index 000000000..16a2756f1 --- /dev/null +++ b/test/scripts/0000-Basic/0168 @@ -0,0 +1,4 @@ +# 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 diff --git a/test/scripts/0000-Basic/0169 b/test/scripts/0000-Basic/0169 new file mode 100644 index 000000000..38a49e791 --- /dev/null +++ b/test/scripts/0000-Basic/0169 @@ -0,0 +1,20 @@ +# 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 diff --git a/test/scripts/0000-Basic/0170 b/test/scripts/0000-Basic/0170 new file mode 100644 index 000000000..059cb6e94 --- /dev/null +++ b/test/scripts/0000-Basic/0170 @@ -0,0 +1,5 @@ +# system filter to pipe without transport +exim -odi userx +This is a test message +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0171 b/test/scripts/0000-Basic/0171 new file mode 100644 index 000000000..b1a4d724f --- /dev/null +++ b/test/scripts/0000-Basic/0171 @@ -0,0 +1,3 @@ +# local user home directory +exim -odi CALLER +**** diff --git a/test/scripts/0000-Basic/0172 b/test/scripts/0000-Basic/0172 new file mode 100644 index 000000000..becfd5f99 --- /dev/null +++ b/test/scripts/0000-Basic/0172 @@ -0,0 +1,4 @@ +# :unknown: +2 +exim -bt unknown +**** diff --git a/test/scripts/0000-Basic/0173 b/test/scripts/0000-Basic/0173 new file mode 100644 index 000000000..485bcd59b --- /dev/null +++ b/test/scripts/0000-Basic/0173 @@ -0,0 +1,7 @@ +# deliver time scan - pipe not using BSMTP +exim -odi userx +Test message +**** +exim -odi userx usery userz +Another test message +**** diff --git a/test/scripts/0000-Basic/0174 b/test/scripts/0000-Basic/0174 new file mode 100644 index 000000000..8ee2d1ae9 --- /dev/null +++ b/test/scripts/0000-Basic/0174 @@ -0,0 +1,10 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0175 b/test/scripts/0000-Basic/0175 new file mode 100644 index 000000000..ef4098586 --- /dev/null +++ b/test/scripts/0000-Basic/0175 @@ -0,0 +1,25 @@ +# 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 diff --git a/test/scripts/0000-Basic/0176 b/test/scripts/0000-Basic/0176 new file mode 100644 index 000000000..077f1d0d1 --- /dev/null +++ b/test/scripts/0000-Basic/0176 @@ -0,0 +1,15 @@ +# -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 +**** diff --git a/test/scripts/0000-Basic/0177 b/test/scripts/0000-Basic/0177 new file mode 100644 index 000000000..bfdf09154 --- /dev/null +++ b/test/scripts/0000-Basic/0177 @@ -0,0 +1,51 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0178 b/test/scripts/0000-Basic/0178 new file mode 100644 index 000000000..36f276217 --- /dev/null +++ b/test/scripts/0000-Basic/0178 @@ -0,0 +1,20 @@ +# 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 backspaces +**** +exim -odi userx +Subject: subject contains "quotes" and \backslashes\ and + non-prints over multiple + lines +**** +exim -odi userx +Subject: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= ABCD +**** +no_message_check diff --git a/test/scripts/0000-Basic/0179 b/test/scripts/0000-Basic/0179 new file mode 100644 index 000000000..58d869b4d --- /dev/null +++ b/test/scripts/0000-Basic/0179 @@ -0,0 +1,35 @@ +# -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 +**** diff --git a/test/scripts/0000-Basic/0180 b/test/scripts/0000-Basic/0180 new file mode 100644 index 000000000..2dbfee734 --- /dev/null +++ b/test/scripts/0000-Basic/0180 @@ -0,0 +1,33 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0181 b/test/scripts/0000-Basic/0181 new file mode 100644 index 000000000..cf1cb05c2 --- /dev/null +++ b/test/scripts/0000-Basic/0181 @@ -0,0 +1,23 @@ +# 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 diff --git a/test/scripts/0000-Basic/0182 b/test/scripts/0000-Basic/0182 new file mode 100644 index 000000000..126dc9d03 --- /dev/null +++ b/test/scripts/0000-Basic/0182 @@ -0,0 +1,7 @@ +# headers added by system filter +exim -odi userx@test.ex +Test message. +. +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0183 b/test/scripts/0000-Basic/0183 new file mode 100644 index 000000000..7dd6ff5ea --- /dev/null +++ b/test/scripts/0000-Basic/0183 @@ -0,0 +1,13 @@ +# 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 +**** diff --git a/test/scripts/0000-Basic/0184 b/test/scripts/0000-Basic/0184 new file mode 100644 index 000000000..4110cb126 --- /dev/null +++ b/test/scripts/0000-Basic/0184 @@ -0,0 +1,208 @@ +# 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 diff --git a/test/scripts/0000-Basic/0185 b/test/scripts/0000-Basic/0185 new file mode 100644 index 000000000..6a59a8072 --- /dev/null +++ b/test/scripts/0000-Basic/0185 @@ -0,0 +1,27 @@ +# More per-user system-ish filter +need_ipv4 +# +exim -odi usery +Subject: freeze this +This is a 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 usery +**** diff --git a/test/scripts/0000-Basic/0186 b/test/scripts/0000-Basic/0186 new file mode 100644 index 000000000..534d7bce6 --- /dev/null +++ b/test/scripts/0000-Basic/0186 @@ -0,0 +1,5 @@ +# ignore_target_hosts (byname) +exim -bt userx@other2.test.ex +**** +exim -bt userx@ten-5-6.test.ex +**** diff --git a/test/scripts/0000-Basic/0187 b/test/scripts/0000-Basic/0187 new file mode 100644 index 000000000..8389b2982 --- /dev/null +++ b/test/scripts/0000-Basic/0187 @@ -0,0 +1,23 @@ +# ignore_target_hosts (bydns) +exim -bt userx@other2.test.ex +**** +exim -bt userx@ten-5-6.test.ex +**** +exim -bt userx@mxt7.test.ex +**** +exim -bt userx@mxt9.test.ex +**** +exim -bt userx@eximtesthost.test.ex +**** +2 +exim -bt userx@localhost +**** +2 +exim -bt userx@mxt10.test.ex +**** +2 +exim -bt userx@mxt11.test.ex +**** +2 +exim -bt userx@mxt12.test.ex +**** diff --git a/test/scripts/0000-Basic/0188 b/test/scripts/0000-Basic/0188 new file mode 100644 index 000000000..2beef48e3 --- /dev/null +++ b/test/scripts/0000-Basic/0188 @@ -0,0 +1,6 @@ +# ETRN (non-existent command) +exim -bs -oMa 127.0.0.1 +etrn #some.random.domain +quit +**** +sleep 1 diff --git a/test/scripts/0000-Basic/0189 b/test/scripts/0000-Basic/0189 new file mode 100644 index 000000000..7a2a934c3 --- /dev/null +++ b/test/scripts/0000-Basic/0189 @@ -0,0 +1,11 @@ +# Sender: from trusted caller +exim -odi userx +Sender: sender@some.domain + +This is a test message from an untrusted caller. +**** +sudo exim -odi userx +Sender: sender@some.domain + +This is a test message from a trusted caller.... +**** diff --git a/test/scripts/0000-Basic/0190 b/test/scripts/0000-Basic/0190 new file mode 100644 index 000000000..9bd9afce5 --- /dev/null +++ b/test/scripts/0000-Basic/0190 @@ -0,0 +1,117 @@ +# hosts_randomize (smtp transport and manualroute) +need_ipv4 +# +server PORT_S 3 +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 +*eof +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 +*eof +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 -odi userx@domain1 userx@domain2 userx@domain3 +Test message +**** +exim -bt x@x x@y x@z +**** +server PORT_S 2 +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +DATA +350 Send message +. +250 OK +QUIT +250 OK +*eof +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 -odi userx@adomain1 userx@adomain2 userx@adomain3 +Test message +**** +exim -bt x@batch y@batch z@batch x@batch2 y@batch2 x@batch3 y@batch3 x@batch4 y@batch4 +**** +exim -bt userx@bdomain1 userx@bdomain2 userx@bdomain3 +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +DATA +350 Send message +. +250 OK +QUIT +250 OK +**** +exim -odi userx@bdomain1 userx@bdomain2 userx@bdomain3 +Test message +**** diff --git a/test/scripts/0000-Basic/0191 b/test/scripts/0000-Basic/0191 new file mode 100644 index 000000000..4ac11154d --- /dev/null +++ b/test/scripts/0000-Basic/0191 @@ -0,0 +1,22 @@ +# transport filter with missing final NL +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send message +. +250 OK +QUIT +250 OK +**** +exim -odi userx@domain1 +Test message +**** diff --git a/test/scripts/0000-Basic/0192 b/test/scripts/0000-Basic/0192 new file mode 100644 index 000000000..a015ccac0 --- /dev/null +++ b/test/scripts/0000-Basic/0192 @@ -0,0 +1,12 @@ +# alternate quota paradigm (and -F encoding) +exim -odi -F 'Phil Q. Hazel' userx +This is a test message which should get delivered. +**** +exim -odi -F 'Mèé spaces: funny, char_acters' userx +This is a test message which should go over the threshold, but still +be delivered. +**** +exim -odi userx +This is a test message that should fail to be delivered. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0193 b/test/scripts/0000-Basic/0193 new file mode 100644 index 000000000..906b82a54 --- /dev/null +++ b/test/scripts/0000-Basic/0193 @@ -0,0 +1,4 @@ +# message_size_limit on batched local delivery +exim -odi userx usery userz +This is a test message. +**** diff --git a/test/scripts/0000-Basic/0194 b/test/scripts/0000-Basic/0194 new file mode 100644 index 000000000..172d4996f --- /dev/null +++ b/test/scripts/0000-Basic/0194 @@ -0,0 +1,16 @@ +# pipe returned message for batched local delivery +exim -odi userx usery userz +This is a test message. +**** +exim -odi one two three four five six seven +Here's another message. +**** +exim -odi userx usery userz +ret: 75 +More message +**** +exim -odi userx usery userz +ret: 99 +More message 99 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0195 b/test/scripts/0000-Basic/0195 new file mode 100644 index 000000000..3c487ded1 --- /dev/null +++ b/test/scripts/0000-Basic/0195 @@ -0,0 +1,25 @@ +# retry times on local addresses +exim -odi userx usery userz +This is a test message. +**** +dump retry +sleep 1 +exim -R usery +**** +dump retry +sleep 1 +exim -odi usery +one-defer: set +second message +**** +dump retry +sleep 1 +exim -Mc $msg2 +**** +dump retry +sleep 1 +exim -q +**** +dump retry +no_msglog_check +no_message_check diff --git a/test/scripts/0000-Basic/0196 b/test/scripts/0000-Basic/0196 new file mode 100644 index 000000000..7100f1e92 --- /dev/null +++ b/test/scripts/0000-Basic/0196 @@ -0,0 +1,17 @@ +# EXPN to daemon +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +expn postmaster +??? 250- +??? 250- +??? 250 +expn rhubarb +??? 553 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/0000-Basic/0197 b/test/scripts/0000-Basic/0197 new file mode 100644 index 000000000..dc6bb520e --- /dev/null +++ b/test/scripts/0000-Basic/0197 @@ -0,0 +1,19 @@ +# Taking copies of a domain's mail +need_ipv4 +# +exim -odi userx@copy.domain usery@copy.domain +Test one. +. +**** +exim -odi -bs +mail from:<doesn't@matter> +rcpt to:<x@copy.domain> +rcpt to:<y@copy.domain> +rcpt to:<z@elsewhere> +data +Test two. +. +quit +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0198 b/test/scripts/0000-Basic/0198 new file mode 100644 index 000000000..2305559fe --- /dev/null +++ b/test/scripts/0000-Basic/0198 @@ -0,0 +1,31 @@ +# local part check before relay +need_ipv4 +# +exim -odi -bS +MAIL FROM:<CALLER@the.local.host.name> +RCPT TO:<userx@copy.domain> +RCPT TO:<usery@copy.domain> +DATA +Received: from CALLER by the.local.host.name with local (Exim x.yz) + (envelope-from <CALLER@the.local.host.name>) + id 10HmaX-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000 +Message-Id: <E10HmaX-0005vi-00@the.local.host.name> +From: CALLER_NAME <CALLER@the.local.host.name> +Date: Tue, 2 Mar 1999 09:44:33 +0000 + +Test one. +. +MAIL FROM:<doesn't@matter> +RCPT TO:<x@copy.domain> +RCPT TO:<y@copy.domain> +DATA +Received: from CALLER by the.local.host.name with local-smtp (Exim x.yz) + (envelope-from <doesn't@matter>) + id 10HmaY-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000 +Message-Id: <E10HmaY-0005vi-00@the.local.host.name> +From: doesn't@matter +Date: Tue, 2 Mar 1999 09:44:33 +0000 + +Test two. +. +**** diff --git a/test/scripts/0000-Basic/0199 b/test/scripts/0000-Basic/0199 new file mode 100644 index 000000000..46573afdf --- /dev/null +++ b/test/scripts/0000-Basic/0199 @@ -0,0 +1,8 @@ +# EXPN remote address becoming local +exim -bs -oMa 127.0.0.1 +expn somewhere@over.the.rainbow +expn somewhere@else.where +expn xxxx@exim.org +expn xxxx@test.ex +quit +**** diff --git a/test/scripts/0000-Basic/0200 b/test/scripts/0000-Basic/0200 new file mode 100644 index 000000000..cf800aa01 --- /dev/null +++ b/test/scripts/0000-Basic/0200 @@ -0,0 +1,4 @@ +# syntax error in host name +2 +exim -bt xx@host.test.ex yy@host.test.ex +**** diff --git a/test/scripts/0000-Basic/0201 b/test/scripts/0000-Basic/0201 new file mode 100644 index 000000000..6c8e4441e --- /dev/null +++ b/test/scripts/0000-Basic/0201 @@ -0,0 +1,21 @@ +# non-completing transport filter +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +351 Send more +. +250 OK +**** +exim -odi userx +This is a test message. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0202 b/test/scripts/0000-Basic/0202 new file mode 100644 index 000000000..0bba061e7 --- /dev/null +++ b/test/scripts/0000-Basic/0202 @@ -0,0 +1,40 @@ +# .. in header lines (SMTP and otherwise) +exim -bs +MAIL FROM:<userx@test.ex> +RCPT TO:<userx@test.ex> +DATA +..: this is legal +From: me +.. +This line follows .. +. +quit +**** +exim -bs +MAIL FROM:<userx@test.ex> +RCPT TO:<userx@test.ex> +DATA +From: me + +.. +This line follows .. +. +quit +**** +exim -oi userx@test.ex +From: me +..: this really is legal +.. two dots +. +That was one dot with -oi +**** +exim -oi userx@test.ex +From: me +..: this really is legal + +.. two dots +. +That was one dot with -oi +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0203 b/test/scripts/0000-Basic/0203 new file mode 100644 index 000000000..857488da7 --- /dev/null +++ b/test/scripts/0000-Basic/0203 @@ -0,0 +1,30 @@ +# Error for 2nd message down one SMTP connection +need_ipv4 +# +exim -odq userx@domain1 +Test message 1 +**** +exim -odq userx@domain1 +Test message 2 +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL +250 OK +RCPT +250 OK +DATA +354 More... +. +250 OK +MAIL +550 Don't like that sender +QUIT +220 OK +**** +exim -qqf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0204 b/test/scripts/0000-Basic/0204 new file mode 100644 index 000000000..00d27890f --- /dev/null +++ b/test/scripts/0000-Basic/0204 @@ -0,0 +1,9 @@ +# -N +exim -odi -N userx@test.ex +Lost +**** +exim -N -odq userx@test.ex +Should be lost +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0205 b/test/scripts/0000-Basic/0205 new file mode 100644 index 000000000..d7367b9ff --- /dev/null +++ b/test/scripts/0000-Basic/0205 @@ -0,0 +1,12 @@ +# percent hack +2 +exim -bt +x%y@testhack.test.ex +x%y@test.ex +x%y%testhack2.test.ex@testhack.test.ex +X%test.ex@testhack.test.ex +**** +exim -odi x%testhack.test.ex@testhack2.test.ex x@testhack.test.ex +**** +exim -odi redirect@test.ex +**** diff --git a/test/scripts/0000-Basic/0206 b/test/scripts/0000-Basic/0206 new file mode 100644 index 000000000..baf8571ef --- /dev/null +++ b/test/scripts/0000-Basic/0206 @@ -0,0 +1,12 @@ +# timeout_frozen_after with ignore_bounce_errors_after +sudo exim -odi -f unknown@test.ex nonexist@test.ex freeze@test.ex +**** +sleep 2 +sudo exim -Mf $msg1 +**** +exim -qf +**** +sleep 2 +exim -q +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0207 b/test/scripts/0000-Basic/0207 new file mode 100644 index 000000000..add3ba1e7 --- /dev/null +++ b/test/scripts/0000-Basic/0207 @@ -0,0 +1,9 @@ +# timeout_frozen_after without ignore_bounce_errors_after +sudo exim -odi -f unknown@test.ex nonexist@test.ex freeze@test.ex +**** +sudo exim -Mf $msg1 +**** +sleep 2 +exim -q +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0208 b/test/scripts/0000-Basic/0208 new file mode 100644 index 000000000..24367df0e --- /dev/null +++ b/test/scripts/0000-Basic/0208 @@ -0,0 +1,29 @@ +# msglog: success, defer, and failure messages +need_ipv4 +# +server PORT_S +220 Welcome +EHLO +250 OK +MAIL +250 OK +RCPT +550 Recipient refused +QUIT +250 OK +**** +exim -odi ok defer fail.transport fail.direct fail.route@unknown.domain +**** +server PORT_S +220 Welcome +EHLO +250 OK +MAIL +250 OK +RCPT +550 Recipient refused +QUIT +250 OK +**** +exim -DMESSAGE_LOGS=false -odi ok defer fail.transport fail.direct fail.route@unknown.domain +**** diff --git a/test/scripts/0000-Basic/0209 b/test/scripts/0000-Basic/0209 new file mode 100644 index 000000000..3bb43f78f --- /dev/null +++ b/test/scripts/0000-Basic/0209 @@ -0,0 +1,72 @@ +# re-use of SMTP channel after 450 error +need_ipv4 +# +exim -odi -odqs userz@domain1 +Test message 1 +**** +exim -odi -odqs userz@domain1 +Test message 2 +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +450 Temporary error +QUIT +250 OK +**** +exim -q +**** +exim -Mrm $msg1 $msg2 +**** +exim -odi -odqs userx@domain1 usery@domain1 +Test message 1 +**** +exim -odi -odqs userx@domain1 usery@domain1 +Test message 2 +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +450 Temporary error +RCPT TO: +250 OK +DATA +354 Go ahead +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +450 Temporary error +RCPT TO: +250 OK +DATA +354 Go ahead +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +450 Temporary error +QUIT +250 OK +**** +exim -q +**** +exim -q +**** +exim -q $msg2 $msg2 +**** +exim -Mc $msg1 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0210 b/test/scripts/0000-Basic/0210 new file mode 100644 index 000000000..ff6d03a9e --- /dev/null +++ b/test/scripts/0000-Basic/0210 @@ -0,0 +1,22 @@ +# Unprivileged use of -f <> +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 OK +DATA +345 Send it +. +250 OK +QUIT +250 OK +**** +exim -odi -f '<>' file@test.ex pipe@test.ex smtp@test.ex +This is a test message. +**** diff --git a/test/scripts/0000-Basic/0211 b/test/scripts/0000-Basic/0211 new file mode 100644 index 000000000..ddf99060b --- /dev/null +++ b/test/scripts/0000-Basic/0211 @@ -0,0 +1,41 @@ +# SMTP connection & EHLO/HELO error responses (+log_sender_on_delivery) +need_ipv4 +# +server PORT_S +450 I'm busy +QUIT +250 OK +**** +exim -odi userx@domain1 +Test message 1 +**** +server PORT_S +220 Connected OK +EHLO +450 I'm busy +HELO +450 I'm busy +QUIT +250 OK +**** +exim -qf +**** +server PORT_S +550 Go away +QUIT +250 OK +**** +exim -qf +**** +server PORT_S +220 Connected OK +EHLO +550 Go away +HELO +550 Go away +QUIT +250 OK +**** +exim -odi userx@domain1 usery@domain2 +Test message 2 +**** diff --git a/test/scripts/0000-Basic/0212 b/test/scripts/0000-Basic/0212 new file mode 100644 index 000000000..534f0d94c --- /dev/null +++ b/test/scripts/0000-Basic/0212 @@ -0,0 +1,42 @@ +# verifying aliases with one or more generated addresses +2 +exim -bv +a +b +f +p +x +y +pipe +file +"smartuser.a@test.ex"@test.ex +"smartuser.b@test.ex"@test.ex +"smartuser.b@test.ex,a@test.ex"@test.ex +**** +exim -bs -oMa V4NET.0.0.0 +mail from:<userx@test.ex> +rcpt to:<a@test.ex> +rcpt to:<b@test.ex> +rcpt to:<f@test.ex> +rcpt to:<p@test.ex> +rcpt to:<x@test.ex> +rcpt to:<y@test.ex> +rcpt to:<pipe@test.ex> +rcpt to:<file@test.ex> +rcpt to:<"smartuser.a@test.ex"@test.ex> +rcpt to:<"smartuser.b@test.ex"@test.ex> +rcpt to:<"smartuser.b@test.ex,a@test.ex"@test.ex> +rset +vrfy <a@test.ex> +vrfy <b@test.ex> +vrfy <f@test.ex> +vrfy <p@test.ex> +vrfy <x@test.ex> +vrfy <y@test.ex> +vrfy <pipe@test.ex> +vrfy <file@test.ex> +vrfy <"smartuser.a@test.ex"@test.ex> +vrfy <"smartuser.b@test.ex"@test.ex> +vrfy <"smartuser.b@test.ex,a@test.ex"@test.ex> +quit +**** diff --git a/test/scripts/0000-Basic/0213 b/test/scripts/0000-Basic/0213 new file mode 100644 index 000000000..5bf073ea5 --- /dev/null +++ b/test/scripts/0000-Basic/0213 @@ -0,0 +1,20 @@ +# retry data with ginormous 550 error +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +550 The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. The answer is no, but I am going to make sure it is a very long answer. Each line is at least 100 chars. I said NO! +QUIT +250 OK +**** +exim -odi userx@domain1 +Test message 1 +**** +dump retry +no_msglog_check diff --git a/test/scripts/0000-Basic/0214 b/test/scripts/0000-Basic/0214 new file mode 100644 index 000000000..fa2a5334a --- /dev/null +++ b/test/scripts/0000-Basic/0214 @@ -0,0 +1,44 @@ +# Overlong header lines and SMTP errors +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +mail from:<x@y.x> +??? 250 +rcpt to:<x@test.ex> +??? 250 +data +??? 354 +From: Me <x@y.z> +Comment: This was really seen! +To: bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + bad@address;bad@address;bad@address;bad@address;bad@address;bad@address; + END +. +??? 550 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/0000-Basic/0215 b/test/scripts/0000-Basic/0215 new file mode 100644 index 000000000..ab108bc87 --- /dev/null +++ b/test/scripts/0000-Basic/0215 @@ -0,0 +1,192 @@ +# LMTP over TCP/IP (with log_sender_on_delivery) +need_ipv4 +# +server PORT_S +220 ESMTP +LHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Receiver OK +DATA +354 Send it +. +250 OK +QUIT +250 OK +**** +exim -odi userx +This is a test message. +**** +server PORT_S +220 ESMTP +LHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +DATA +354 Send it +. +250 OK +440 Temporary error +550 Bad user +250 OK +440 Temporary error +550 Bad user +QUIT +250 OK +**** +exim -odi userx userxx userxy userxz useryx useryy +This is a test message. +**** +exim -Mrm $msg1 +**** +# This is a repeat of the previous test, but with pauses between the +# final responses, so they go out in separate packets, and some multilines. +server PORT_S +220 ESMTP +LHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +DATA +354 Send it +. +250 OK +440 Temporary error +550-I don't like this user +*sleep 1 +550 Bad user +250-This one's OK +250 OK +440-Here's a whole long message, in several lines, +*sleep 1 +440-just for testing that nothing breaks when +440-we do this +440 Temporary error +550 Bad user +QUIT +250 OK +**** +exim -odi userx userxx userxy userxz useryx useryy +This is a test message. +**** +exim -Mrm $msg1 +**** +# This is another repeat of the previous test, but this time some addresses +# get bounced at RCPT time. +server PORT_S +220 ESMTP +LHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +550 Receiver BAD +RCPT TO: +250 Receiver OK +RCPT TO: +450 Receiver temporarily bad +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +550 Receiver BAD +DATA +354 Send it +. +440 Temporary error +550-I don't like this user +550 Bad user +250-This one's OK +250 OK +QUIT +250 OK +**** +exim -odi userx userxx userxy userxz useryx useryy +This is a test message. +**** +# This is to test the ignore_quota feature; first time we don't support it. +server PORT_S +220 ESMTP +LHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +DATA +354 Send it +. +250 OK +250 OK +250 OK +QUIT +250 OK +**** +exim -odi -DIGNORE_QUOTA=true userxx userxy userxz +This is a test message. +**** +# This is to test the ignore_quota feature; second time we do support it +server PORT_S +220 ESMTP +LHLO +250-OK +250-IGNOREQUOTA +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +RCPT TO: +250 Receiver OK +DATA +354 Send it +. +250 OK +250 OK +250 OK +QUIT +250 OK +**** +exim -odi -DIGNORE_QUOTA=true userxx userxy userxz +This is a test message. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0216 b/test/scripts/0000-Basic/0216 new file mode 100644 index 000000000..50ae0230a --- /dev/null +++ b/test/scripts/0000-Basic/0216 @@ -0,0 +1,113 @@ +# PIPELINING (server and client, lots of addresses) +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +exim -t +To: a000@test.ex,a001@test.ex,a002@test.ex,a003@test.ex,a004@test.ex, + a005@test.ex,a006@test.ex,a007@test.ex,a008@test.ex,a009@test.ex, + a010@test.ex,a011@test.ex,a012@test.ex,a013@test.ex,a014@test.ex, + a015@test.ex,a016@test.ex,a017@test.ex,a018@test.ex,a019@test.ex, + a020@test.ex,a021@test.ex,a022@test.ex,a023@test.ex,a024@test.ex, + a025@test.ex,a026@test.ex,a027@test.ex,a028@test.ex,a029@test.ex, + a030@test.ex,a031@test.ex,a032@test.ex,a033@test.ex,a034@test.ex, + a035@test.ex,a036@test.ex,a037@test.ex,a038@test.ex,a039@test.ex, + a040@test.ex,a041@test.ex,a042@test.ex,a043@test.ex,a044@test.ex, + a045@test.ex,a046@test.ex,a047@test.ex,a048@test.ex,a049@test.ex, + a050@test.ex,a051@test.ex,a052@test.ex,a053@test.ex,a054@test.ex, + a055@test.ex,a056@test.ex,a057@test.ex,a058@test.ex,a059@test.ex, + a060@test.ex,a061@test.ex,a062@test.ex,a063@test.ex,a064@test.ex, + a065@test.ex,a066@test.ex,a067@test.ex,a068@test.ex,a069@test.ex, + a070@test.ex,a071@test.ex,a072@test.ex,a073@test.ex,a074@test.ex, + a075@test.ex,a076@test.ex,a077@test.ex,a078@test.ex,a079@test.ex, + a080@test.ex,a081@test.ex,a082@test.ex,a083@test.ex,a084@test.ex, + a085@test.ex,a086@test.ex,a087@test.ex,a088@test.ex,a089@test.ex, + a090@test.ex,a091@test.ex,a092@test.ex,a093@test.ex,a094@test.ex, + a095@test.ex,a096@test.ex,a097@test.ex,a098@test.ex,a099@test.ex, + a100@test.ex,a101@test.ex,a102@test.ex,a103@test.ex,a104@test.ex, + a105@test.ex,a106@test.ex,a107@test.ex,a108@test.ex,a109@test.ex, + a110@test.ex,a111@test.ex,a112@test.ex,a113@test.ex,a114@test.ex, + a115@test.ex,a116@test.ex,a117@test.ex,a118@test.ex,a119@test.ex, + a120@test.ex,a121@test.ex,a122@test.ex,a123@test.ex,a124@test.ex, + a125@test.ex,a126@test.ex,a127@test.ex,a128@test.ex,a129@test.ex, + a130@test.ex,a131@test.ex,a132@test.ex,a133@test.ex,a134@test.ex, + a135@test.ex,a136@test.ex,a137@test.ex,a138@test.ex,a139@test.ex, + a140@test.ex,a141@test.ex,a142@test.ex,a143@test.ex,a144@test.ex, + a145@test.ex,a146@test.ex,a147@test.ex,a148@test.ex,a149@test.ex, + a150@test.ex,a151@test.ex,a152@test.ex,a153@test.ex,a154@test.ex, + a155@test.ex,a156@test.ex,a157@test.ex,a158@test.ex,a159@test.ex, + a160@test.ex,a161@test.ex,a162@test.ex,a163@test.ex,a164@test.ex, + a165@test.ex,a166@test.ex,a167@test.ex,a168@test.ex,a169@test.ex, + a170@test.ex,a171@test.ex,a172@test.ex,a173@test.ex,a174@test.ex, + a175@test.ex,a176@test.ex,a177@test.ex,a178@test.ex,a179@test.ex, + a180@test.ex,a181@test.ex,a182@test.ex,a183@test.ex,a184@test.ex, + a185@test.ex,a186@test.ex,a187@test.ex,a188@test.ex,a189@test.ex, + a190@test.ex,a191@test.ex,a192@test.ex,a193@test.ex,a194@test.ex, + a195@test.ex,a196@test.ex,a197@test.ex,a198@test.ex,a199@test.ex, + a200@test.ex,a201@test.ex,a202@test.ex,a203@test.ex,a204@test.ex, + a205@test.ex,a206@test.ex,a207@test.ex,a208@test.ex,a209@test.ex, + a210@test.ex,a211@test.ex,a212@test.ex,a213@test.ex,a214@test.ex, + a215@test.ex,a216@test.ex,a217@test.ex,a218@test.ex,a219@test.ex, + a220@test.ex,a221@test.ex,a222@test.ex,a223@test.ex,a224@test.ex, + a225@test.ex,a226@test.ex,a227@test.ex,a228@test.ex,a229@test.ex, + a230@test.ex,a231@test.ex,a232@test.ex,a233@test.ex,a234@test.ex, + a235@test.ex,a236@test.ex,a237@test.ex,a238@test.ex,a239@test.ex, + a240@test.ex,a241@test.ex,a242@test.ex,a243@test.ex,a244@test.ex, + a245@test.ex,a246@test.ex,a247@test.ex,a248@test.ex,a249@test.ex, + a250@test.ex,a251@test.ex,a252@test.ex,a253@test.ex,a254@test.ex, + a255@test.ex,a256@test.ex,a257@test.ex,a258@test.ex,a259@test.ex, + a260@test.ex,a261@test.ex,a262@test.ex,a263@test.ex,a264@test.ex, + a265@test.ex,a266@test.ex,a267@test.ex,a268@test.ex,a269@test.ex, + a270@test.ex,a271@test.ex,a272@test.ex,a273@test.ex,a274@test.ex, + a275@test.ex,a276@test.ex,a277@test.ex,a278@test.ex,a279@test.ex, + a280@test.ex,a281@test.ex,a282@test.ex,a283@test.ex,a284@test.ex, + a285@test.ex,a286@test.ex,a287@test.ex,a288@test.ex,a289@test.ex, + a290@test.ex,a291@test.ex,a292@test.ex,a293@test.ex,a294@test.ex, + a295@test.ex,a296@test.ex,a297@test.ex,a298@test.ex,a299@test.ex, + a300@test.ex,a301@test.ex,a302@test.ex,a303@test.ex,a304@test.ex, + a305@test.ex,a306@test.ex,a307@test.ex,a308@test.ex,a309@test.ex, + a310@test.ex,a311@test.ex,a312@test.ex,a313@test.ex,a314@test.ex, + a315@test.ex,a316@test.ex,a317@test.ex,a318@test.ex,a319@test.ex, + a320@test.ex,a321@test.ex,a322@test.ex,a323@test.ex,a324@test.ex, + a325@test.ex,a326@test.ex,a327@test.ex,a328@test.ex,a329@test.ex, + a330@test.ex,a331@test.ex,a332@test.ex,a333@test.ex,a334@test.ex, + a335@test.ex,a336@test.ex,a337@test.ex,a338@test.ex,a339@test.ex, + a340@test.ex,a341@test.ex,a342@test.ex,a343@test.ex,a344@test.ex, + a345@test.ex,a346@test.ex,a347@test.ex,a348@test.ex,a349@test.ex, + a350@test.ex,a351@test.ex,a352@test.ex,a353@test.ex,a354@test.ex, + a355@test.ex,a356@test.ex,a357@test.ex,a358@test.ex,a359@test.ex, + a360@test.ex,a361@test.ex,a362@test.ex,a363@test.ex,a364@test.ex, + a365@test.ex,a366@test.ex,a367@test.ex,a368@test.ex,a369@test.ex, + a370@test.ex,a371@test.ex,a372@test.ex,a373@test.ex,a374@test.ex, + a375@test.ex,a376@test.ex,a377@test.ex,a378@test.ex,a379@test.ex, + a380@test.ex,a381@test.ex,a382@test.ex,a383@test.ex,a384@test.ex, + a385@test.ex,a386@test.ex,a387@test.ex,a388@test.ex,a389@test.ex, + a390@test.ex,a391@test.ex,a392@test.ex,a393@test.ex,a394@test.ex, + a395@test.ex,a396@test.ex,a397@test.ex,a398@test.ex,a399@test.ex, + a400@test.ex,a401@test.ex,a402@test.ex,a403@test.ex,a404@test.ex, + a405@test.ex,a406@test.ex,a407@test.ex,a408@test.ex,a409@test.ex, + a410@test.ex,a411@test.ex,a412@test.ex,a413@test.ex,a414@test.ex, + a415@test.ex,a416@test.ex,a417@test.ex,a418@test.ex,a419@test.ex, + a420@test.ex,a421@test.ex,a422@test.ex,a423@test.ex,a424@test.ex, + a425@test.ex,a426@test.ex,a427@test.ex,a428@test.ex,a429@test.ex, + a430@test.ex,a431@test.ex,a432@test.ex,a433@test.ex,a434@test.ex, + a435@test.ex,a436@test.ex,a437@test.ex,a438@test.ex,a439@test.ex, + a440@test.ex,a441@test.ex,a442@test.ex,a443@test.ex,a444@test.ex, + a445@test.ex,a446@test.ex,a447@test.ex,a448@test.ex,a449@test.ex, + a450@test.ex,a451@test.ex,a452@test.ex,a453@test.ex,a454@test.ex, + a455@test.ex,a456@test.ex,a457@test.ex,a458@test.ex,a459@test.ex, + a460@test.ex,a461@test.ex,a462@test.ex,a463@test.ex,a464@test.ex, + a465@test.ex,a466@test.ex,a467@test.ex,a468@test.ex,a469@test.ex, + a470@test.ex,a471@test.ex,a472@test.ex,a473@test.ex,a474@test.ex, + a475@test.ex,a476@test.ex,a477@test.ex,a478@test.ex,a479@test.ex, + a480@test.ex,a481@test.ex,a482@test.ex,a483@test.ex,a484@test.ex, + a485@test.ex,a486@test.ex,a487@test.ex,a488@test.ex,a489@test.ex, + a490@test.ex,a491@test.ex,a492@test.ex,a493@test.ex,a494@test.ex, + a495@test.ex,a496@test.ex,a497@test.ex,a498@test.ex,a499@test.ex + +Testing +**** +exim -M $msg1 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/0000-Basic/0217 b/test/scripts/0000-Basic/0217 new file mode 100644 index 000000000..c91d24254 --- /dev/null +++ b/test/scripts/0000-Basic/0217 @@ -0,0 +1,319 @@ +# PIPELINING (client: errors, etc) +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +451 Temp error +RCPT TO +550 Perm error +RCPT TO +250 OK +DATA +351 Send more +. +250 OK +**** +exim -odi a b c d +. +**** +# Response timeout +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +250 OK +*sleep 2 +**** +exim -odi a b c +. +**** +# Temp error on MAIL +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +451 Temp error +RCPT TO +503 No sender given +RCPT TO +503 No sender given +DATA +503 No envelope +QUIT +250 OK +**** +exim -odi a b +. +**** +# Perm error on MAIL +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +550 Perm error +RCPT TO +503 No sender given +RCPT TO +503 No sender given +DATA +503 No envelope +QUIT +250 OK +**** +exim -odi a b +. +**** +# All get temp errors +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +451 Temp error 1 +RCPT TO +451 Temp error 2 +DATA +503 No recipients +QUIT +250 OK +**** +exim -odi a b +. +**** +# All get perm errors +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +551 Perm error 1 +RCPT TO +551 Perm error 2 +DATA +503 No recipients +QUIT +250 OK +**** +exim -odi a b +. +**** +# Mixed temp and perm +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +451 Temp error 1 +RCPT TO +551 Perm error 2 +DATA +503 No recipients +QUIT +250 OK +**** +exim -odi a b +. +**** +# Perm error on DATA after good recipients +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +DATA +503 Sorry perm data error +QUIT +250 OK +**** +exim -odi a b +. +**** +# Temp error on DATA after good recipients +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +DATA +403 Sorry temp data error +QUIT +250 OK +**** +exim -odi a b +. +**** +# Temp error on DATA after good recipients, but in first block of a +# multi-block interaction +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +RCPT TO +550 NO +DATA +403 Sorry temp data error +QUIT +250 OK +**** +exim -v -odi a b c d e f g h i j k l m n o p q r s t u v w x y z aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz +. +**** +# Server drops connection after some responses +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +550 NO +**** +exim -odi a b c d e +. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0218 b/test/scripts/0000-Basic/0218 new file mode 100644 index 000000000..f9d036ae3 --- /dev/null +++ b/test/scripts/0000-Basic/0218 @@ -0,0 +1,94 @@ +# PIPELINING (client: multiple messages, with log_sender_on_delivery) +need_ipv4 +# +exim a +Message 1 +**** +exim b +Message 2 +**** +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +351 Send more +. +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +351 Send more +. +250 OK +QUIT +250 OK +**** +exim -d-all+queue_run -v -qq +. +**** +# This time, the first one gets a MAIL error. As the message makes no +# progress, the second one runs separately, and gets a refused connection. +exim a +Message 1 +**** +exim b +Message 2 +**** +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +550 NO +RCPT TO +503 Unexpected RCPT +DATA +503 Unexpected DATA +QUIT +250 OK +**** +exim -d-all+queue_run -v -qq +. +**** +# One message and an error message were left on the queue. Add a new +# message and try again; this time the first message gets a recipient error. +exim c +Message 3 +**** +server PORT_S +220 Server ready +EHLO +250-OK +250 PIPELINING +MAIL FROM +250 OK +RCPT TO +550 Unknown +DATA +503 Unexpected DATA +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +351 OK +. +250 OK +QUIT +250 OK +**** +exim -d-all+ident -v -qqf +. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0219 b/test/scripts/0000-Basic/0219 new file mode 100644 index 000000000..f5de21e21 --- /dev/null +++ b/test/scripts/0000-Basic/0219 @@ -0,0 +1,8 @@ +# -be and file permissions +touch DIR/test-private +sudo chown EXIMUSER DIR/test-private +sudo chmod 0600 DIR/test-private +# +exim -be +${lookup{junk}lsearch{DIR/test-private}{$value}fail} +**** diff --git a/test/scripts/0000-Basic/0220 b/test/scripts/0000-Basic/0220 new file mode 100644 index 000000000..2ac40c98d --- /dev/null +++ b/test/scripts/0000-Basic/0220 @@ -0,0 +1,43 @@ +# untrusted_set_sender: TRUE +exim -odi -f foo@bar userx +**** +exim -odi userx +From foo@bar Fri Jan 5 12:35 GMT 1996 +**** +exim -odi -bs +MAIL FROM:<foo@bar> +RCPT TO:<userx@test.ex> +DATA +. +QUIT +**** +exim -odi -f foo@bar userx +From: foobydooby <foo@bar> +**** +1 +exim -odi -f '<>' userx +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +**** +exim -odq -f '' userx +**** +exim -odq -f foo@bar userx +**** +sudo exim -odq -f "<>" userx +**** +exim -bp +**** +exim -odi -f bar@foo userx +**** +exim -odq -f userx-something@myhost.test.ex userx +**** +exim -odq -f usery-something@myhost.test.ex userx +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0221 b/test/scripts/0000-Basic/0221 new file mode 100644 index 000000000..d08fc4abd --- /dev/null +++ b/test/scripts/0000-Basic/0221 @@ -0,0 +1,37 @@ +# untrusted_set_sender: FALSE +exim -odi -f foo@bar userx +**** +exim -odi userx +From foo@bar Fri Jan 5 12:35 GMT 1996 +**** +exim -odi -bs +MAIL FROM:<foo@bar> +RCPT TO:<userx@test.ex> +DATA +. +QUIT +**** +exim -odi -f foo@bar userx +From: foobydooby <foo@bar> +**** +1 +exim -odi -f '<>' userx +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +This message is going to be too large. Create a few lines to make it so. +**** +exim -odq -f '<>' userx +**** +exim -odq -f foo@bar userx +**** +sudo exim -odq -f "<>" userx +**** +exim -bp +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0222 b/test/scripts/0000-Basic/0222 new file mode 100644 index 000000000..d2bda8e22 --- /dev/null +++ b/test/scripts/0000-Basic/0222 @@ -0,0 +1,15 @@ +# autoreply and once and once_file_size +exim -odi -f foo1 userx +**** +exim -odi -f foo1 userx +**** +exim -odi -f foo2 userx +**** +exim -odi -f foo2 userx +**** +exim -odi -f foo3 userx +**** +exim -odi -f foo3 userx +**** +exim -odi -f foo1 userx +**** diff --git a/test/scripts/0000-Basic/0223 b/test/scripts/0000-Basic/0223 new file mode 100644 index 000000000..76671f625 --- /dev/null +++ b/test/scripts/0000-Basic/0223 @@ -0,0 +1,10 @@ +# autoreply with once_repeat and once_file_size +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 diff --git a/test/scripts/0000-Basic/0224 b/test/scripts/0000-Basic/0224 new file mode 100644 index 000000000..565aad55a --- /dev/null +++ b/test/scripts/0000-Basic/0224 @@ -0,0 +1,11 @@ +# child addresses in bounce and delay messages +exim -odi userxx@test.ex useryx@test.ex +Subject: first message +**** +exim -odi userxy@test.ex useryy@test.ex file@test.ex +Subject: second message +**** +sleep 1 +exim -odi -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0225 b/test/scripts/0000-Basic/0225 new file mode 100644 index 000000000..ac6cf59a3 --- /dev/null +++ b/test/scripts/0000-Basic/0225 @@ -0,0 +1,5 @@ +# self = pass and unseen +exim -odi copy@localhost +Original message +**** +no_message_check diff --git a/test/scripts/0000-Basic/0226 b/test/scripts/0000-Basic/0226 new file mode 100644 index 000000000..ce7e4701e --- /dev/null +++ b/test/scripts/0000-Basic/0226 @@ -0,0 +1,8 @@ +# redirect: file and pipe addresses +exim -odi /a/b/c@no.test.ex '|/p/q/r'@no.test.ex +Message 1 +**** +exim -odi DIR/test-mail/file@yes.test.ex '|DIR/aux-fixed/showenv'@yes.test.ex +Message 2 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0227 b/test/scripts/0000-Basic/0227 new file mode 100644 index 000000000..62832e012 --- /dev/null +++ b/test/scripts/0000-Basic/0227 @@ -0,0 +1,233 @@ +# callout verification (no caching) +need_ipv4 +# +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<ok@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -v -bs -oMa V4NET.0.0.2 +MAIL FROM:<unchecked@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Unknown user +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<bad@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +450 Temporary error +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<uncheckable@localhost1> +RCPT TO:<z@test.ex> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +550 Error for <> +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<uncheckable2@localhost1> +RCPT TO:<z@test.ex> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +550-Multiline error for <> +550 Here's the second line +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<uncheckable@localhost1> +RCPT TO:<z@test.ex> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Recipient not liked +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<uncheckable@localhost1> +RCPT TO:<z@remote.domain> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550-Recipient not liked on two lines +550 Here's the second +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<uncheckable@localhost1> +RCPT TO:<z@remote.domain> +QUIT +**** +sudo exim -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<uncheckable@localhost1> +RCPT TO:<z@remote.domain> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Not liked +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.4 +MAIL FROM:<uncheckable@localhost1> +RCPT TO:<z@remote.domain> +DATA +From: abcd@x.y.z +. +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Not liked +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.4 +MAIL FROM:<uncheckable@localhost1> +RCPT TO:<z@remote.domain> +DATA +From: abcd@x.y.z +. +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.5 +MAIL FROM:<ok@localhost1> +RCPT TO:<z@remote.domain> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +550 Don't like postmaster +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.5 +MAIL FROM:<ok@localhost1> +RCPT TO:<z@remote.domain> +QUIT +**** +server PORT_S +220 Server ready +LHLO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Recipient not liked +QUIT +250 OK +**** +sudo exim -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<uncheckable@localhost1> +RCPT TO:<z@remote.lmtp> +QUIT +**** +server PORT_S +**** +sudo exim -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<bad@localhost1> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<bad@localhost1> +RCPT TO:<z@test.ex> +QUIT +**** diff --git a/test/scripts/0000-Basic/0228 b/test/scripts/0000-Basic/0228 new file mode 100644 index 000000000..827effae3 --- /dev/null +++ b/test/scripts/0000-Basic/0228 @@ -0,0 +1,6 @@ +# fallback hosts and self=send on manualroute +need_ipv4 +# +exim -odi abcd@x.y.z +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0229 b/test/scripts/0000-Basic/0229 new file mode 100644 index 000000000..c968376df --- /dev/null +++ b/test/scripts/0000-Basic/0229 @@ -0,0 +1,6 @@ +# hosts_max_try +need_ipv4 +# +exim -odi a@test.ex +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0230 b/test/scripts/0000-Basic/0230 new file mode 100644 index 000000000..1bd97d670 --- /dev/null +++ b/test/scripts/0000-Basic/0230 @@ -0,0 +1,62 @@ +# log_incoming_port and log_incoming_interface and -oMa/-bh with ports +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +client HOSTIPV4 PORT_D +??? 220 +mail from:<x@y.x> +??? 250 +rcpt to:<x@test.ex> +??? 250 +data +??? 354 +. +??? 250 +quit +??? 221 ++++ 1 +**** +client 127.0.0.1 PORT_D +??? 220 +mail from:<x@y.x> +??? 250 +rcpt to:<x@test.ex> +??? 250 +data +??? 354 +. +??? 250 +quit +??? 221 ++++ 1 +**** +client HOSTIPV4 PORT_D +??? 220 +helo rhubarb +??? 250 +mail from:<x@y.x> +??? 250 +rcpt to:<x@test.ex> +??? 250 +data +??? 354 +. +??? 250 +quit +??? 221 +**** +killdaemon +sudo exim -bs -oMa V4NET.9.8.7.1234 +mail from:<x@y.x> +rcpt to:<x@test.ex> +data +-oMa message +. +quit +**** +exim -odi -qf +**** +exim -bh 192.168.1.2.99 +quit +**** diff --git a/test/scripts/0000-Basic/0231 b/test/scripts/0000-Basic/0231 new file mode 100644 index 000000000..561dac235 --- /dev/null +++ b/test/scripts/0000-Basic/0231 @@ -0,0 +1,29 @@ +# rewriting at transport time +need_ipv4 +# +server PORT_S +220 OK +EHLO +250 OK +MAIL +250 OK +RCPT +250 OK +RCPT +250 OK +RCPT +250 OK +RCPT +250 OK +DATA +354 OK +. +250 OK +QUIT +220 OK +**** +exim -odi a@test.ex b@test.ex a@domain1 b@domain1 a@domain3 b@domain3 +From: a@test.ex, b@test.ex, a@domain1, b@domain1, a@domain3, b@domain3 +To: a@test.ex, b@test.ex, a@domain1, b@domain1, a@domain3, b@domain3 +Reply-to: a@test.ex, b@test.ex, a@domain1, b@domain1, a@domain3, b@domain3 +**** diff --git a/test/scripts/0000-Basic/0232 b/test/scripts/0000-Basic/0232 new file mode 100644 index 000000000..989174d3e --- /dev/null +++ b/test/scripts/0000-Basic/0232 @@ -0,0 +1,3 @@ +# Inline filter text +exim -bt filter1.test.ex +**** diff --git a/test/scripts/0000-Basic/0233 b/test/scripts/0000-Basic/0233 new file mode 100644 index 000000000..0acb13fca --- /dev/null +++ b/test/scripts/0000-Basic/0233 @@ -0,0 +1,12 @@ +# freeze_tell & system filter & ACL +exim -odi userx +Rhubarb +**** +exim -odi -bs +mail from:<a@test.ex> +rcpt to:<usery@test.ex> +data +Should be frozen +. +quit +**** diff --git a/test/scripts/0000-Basic/0234 b/test/scripts/0000-Basic/0234 new file mode 100644 index 000000000..41eaafa72 --- /dev/null +++ b/test/scripts/0000-Basic/0234 @@ -0,0 +1,18 @@ +# @mx_any +need_ipv4 +# +exim -bh V4NET.0.0.0 +mail from:<a@b> +rcpt to:<c@d> +rcpt to:<e@mxt1.test.ex> +rcpt to:<f@mxt6.test.ex> +quit +**** +sudo exim -bs -oMa V4NET.0.0.0 +mail from:<a@b> +rcpt to:<c@d> +rcpt to:<e@mxt1.test.ex> +rcpt to:<f@mxt6.test.ex> +rcpt to:<g@mxt98.test.ex> +quit +**** diff --git a/test/scripts/0000-Basic/0235 b/test/scripts/0000-Basic/0235 new file mode 100644 index 000000000..2183f6fb8 --- /dev/null +++ b/test/scripts/0000-Basic/0235 @@ -0,0 +1,4 @@ +# redirect with forced lookup fail and no_more +2 +exim -bt xxx +**** diff --git a/test/scripts/0000-Basic/0236 b/test/scripts/0000-Basic/0236 new file mode 100644 index 000000000..b9d3f4c4d --- /dev/null +++ b/test/scripts/0000-Basic/0236 @@ -0,0 +1,4 @@ +# Macro name longer than 63 characters +1 +exim -bP qualify_domain +**** diff --git a/test/scripts/0000-Basic/0237 b/test/scripts/0000-Basic/0237 new file mode 100644 index 000000000..9cb2aa655 --- /dev/null +++ b/test/scripts/0000-Basic/0237 @@ -0,0 +1,8 @@ +# redirect: file and pipe addresses with hide_child_in_errmsg +exim -odi /a/b/c@no.test.ex '|/p/q/r'@no.test.ex +Message 1 +**** +exim -odi DIR/test-mail/file@yes.test.ex '|DIR/aux-fixed/showenv'@yes.test.ex +Message 2 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0238 b/test/scripts/0000-Basic/0238 new file mode 100644 index 000000000..b7365d7b9 --- /dev/null +++ b/test/scripts/0000-Basic/0238 @@ -0,0 +1,9 @@ +# require_files with failing expansion or relative path +need_ipv4 +# +1 +exim -bt userx@test.ex +**** +1 +exim -bt xxx@a.b.c +**** diff --git a/test/scripts/0000-Basic/0239 b/test/scripts/0000-Basic/0239 new file mode 100644 index 000000000..d89570e30 --- /dev/null +++ b/test/scripts/0000-Basic/0239 @@ -0,0 +1,11 @@ +# host list in verify output when routing to a local transport +exim -v -bv userx@localhost +**** +exim -bv userx@localhost +**** +exim -v -bt userx@localhost +**** +exim -bt userx@localhost +**** +exim -v -bt userx@smtp +**** diff --git a/test/scripts/0000-Basic/0240 b/test/scripts/0000-Basic/0240 new file mode 100644 index 000000000..3bb5bbb70 --- /dev/null +++ b/test/scripts/0000-Basic/0240 @@ -0,0 +1,4 @@ +# create_directory and directory_mode +exim -odi userx@test.ex +**** +ls -ld DIR/test-mail/subdir | cut -f 1 -d ' ' diff --git a/test/scripts/0000-Basic/0241 b/test/scripts/0000-Basic/0241 new file mode 100644 index 000000000..cfb7707ae --- /dev/null +++ b/test/scripts/0000-Basic/0241 @@ -0,0 +1,10 @@ +# filter freeze + send message fails +exim -odq userx@test.ex +**** +exim -qf +**** +exim -Mt $msg1 +**** +exim -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0242 b/test/scripts/0000-Basic/0242 new file mode 100644 index 000000000..38e49edae --- /dev/null +++ b/test/scripts/0000-Basic/0242 @@ -0,0 +1,39 @@ +# message with no terminating LF +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +354 Send more +. +250 OK +QUIT +250 OK +**** +exim -odi abc@x.y.z +Test message\NONL\ +**** +server PORT_S +220 Server ready +EHLO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +354 Send more +. +250 OK +QUIT +250 OK +**** +exim -odi abc@x.y.z +Subject: Test message\NONL\ +**** diff --git a/test/scripts/0000-Basic/0243 b/test/scripts/0000-Basic/0243 new file mode 100644 index 000000000..e51fcd461 --- /dev/null +++ b/test/scripts/0000-Basic/0243 @@ -0,0 +1,10 @@ +# autoreply with unseen +exim -odi faq@nl.demon.net +Test message +**** +exim -bh 1.2.3.4 +ehlo xxxx +mail from:<abcd@x.y> +rcpt to:<faq@nl.demon.net> +quit +**** diff --git a/test/scripts/0000-Basic/0244 b/test/scripts/0000-Basic/0244 new file mode 100644 index 000000000..95f291db5 --- /dev/null +++ b/test/scripts/0000-Basic/0244 @@ -0,0 +1,7 @@ +# skipping in expansions +exim -be +${if eq {0}{0}{OK}{${lookup{x}lsearch{/x/y}}}} +${if eq {0}{0}{OK}{${extract{key}{${lookup{x}lsearch{/x/y}}}}}} +${if eq {0}{0}{OK}{${tr{${extract{key}{${lookup{x}lsearch{/x/y}}}}}{x}{y}}}} +${if eq {0}{0}{OK}{${sg{${extract{key}{${lookup{x}lsearch{/x/y}}}}}{x}{y}}}} +**** diff --git a/test/scripts/0000-Basic/0245 b/test/scripts/0000-Basic/0245 new file mode 100644 index 000000000..2f96bea6d --- /dev/null +++ b/test/scripts/0000-Basic/0245 @@ -0,0 +1,12 @@ +# -t with newline in address; also spaces after a "final" dot +exim -odq -t +To: <"abc + def"@test.ex>, xxx@yyy +Bcc: aaa@bbb +. +**** +exim -bp +**** +exim -Mvh $msg1 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0246 b/test/scripts/0000-Basic/0246 new file mode 100644 index 000000000..d8986532d --- /dev/null +++ b/test/scripts/0000-Basic/0246 @@ -0,0 +1,4 @@ +# forbid lookup/exists in filter - with autoreply +exim -odi filter +. +**** diff --git a/test/scripts/0000-Basic/0247 b/test/scripts/0000-Basic/0247 new file mode 100644 index 000000000..e2d2eb5aa --- /dev/null +++ b/test/scripts/0000-Basic/0247 @@ -0,0 +1,6 @@ +# :blackhole: with deferred other address +exim -odi blackhole devnull other +. +**** +exim -q +**** diff --git a/test/scripts/0000-Basic/0248 b/test/scripts/0000-Basic/0248 new file mode 100644 index 000000000..178169ac5 --- /dev/null +++ b/test/scripts/0000-Basic/0248 @@ -0,0 +1,186 @@ +# humungous "freeze" message in system filter +exim -odi xxxx +X-Long: + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed------- + This is a very very long header line indeed----End +. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0249 b/test/scripts/0000-Basic/0249 new file mode 100644 index 000000000..2394cd76b --- /dev/null +++ b/test/scripts/0000-Basic/0249 @@ -0,0 +1,5 @@ +# local part case in rewrites +exim -brw User@a.domain +**** +exim -d-all+rewrite -brw User@c.domain +**** diff --git a/test/scripts/0000-Basic/0250 b/test/scripts/0000-Basic/0250 new file mode 100644 index 000000000..3fbd98871 --- /dev/null +++ b/test/scripts/0000-Basic/0250 @@ -0,0 +1,16 @@ +# From: and Sender: and rewriting +exim -odq SomeOne +From: userx@test.ex +**** +exim -Mvh $msg1 +**** +exim -odq OtherOne +From: usery@test.ex +**** +exim -Mvh $msg2 +**** +exim -odq ThirdOne +**** +exim -Mvh $msg3 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0251 b/test/scripts/0000-Basic/0251 new file mode 100644 index 000000000..457154389 --- /dev/null +++ b/test/scripts/0000-Basic/0251 @@ -0,0 +1,29 @@ +# senders check while verifying +need_ipv4 +# +exim -bh V4NET.0.0.0 +mail from:<ok@sender> +rcpt to:<oklist@listr.test.ex> +rset +mail from:<bad@sender> +rcpt to:<oklist@listr.test.ex> +quit +**** +exim -DSERVER=server -bd -oX PORT_D +**** +client HOSTIPV4 PORT_D +??? 220 +mail from:<ok@sender> +??? 250 +rcpt to:<oklist@listr.test.ex> +??? 250 +rset +??? 250 +mail from:<bad@sender> +??? 250 +rcpt to:<oklist@listr.test.ex> +??? 250 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/0000-Basic/0252 b/test/scripts/0000-Basic/0252 new file mode 100644 index 000000000..5eb20138a --- /dev/null +++ b/test/scripts/0000-Basic/0252 @@ -0,0 +1,13 @@ +# errors_to and unseen +exim -odi -f abc@x.y.z userx +Test message +**** +exim -odi -f pqr@x.y.z alias +Test message +**** +exim -odi -f gfh@x.y.z forward +Test message +**** +exim -odi -f mno@x.y.z smart +Test message +**** diff --git a/test/scripts/0000-Basic/0253 b/test/scripts/0000-Basic/0253 new file mode 100644 index 000000000..56362e0db --- /dev/null +++ b/test/scripts/0000-Basic/0253 @@ -0,0 +1,55 @@ +# return_path on appendfile and smtp transports +need_ipv4 +# +exim -odi -f abc@x.y.z userx +Test message +**** +exim -odi -f xyz@x.y.z userx +Test message 2 +**** +server PORT_S 3 +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Go ahead +. +250 OK +QUIT +250 OK +*eof +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Go ahead +. +250 OK +QUIT +250 OK +*eof +220 ESMTP +EHLO +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +550 Recipient not OK +QUIT +250 OK +**** +exim -odi -f pqr@x.y.z userx phil fail +Test message 3 +**** diff --git a/test/scripts/0000-Basic/0254 b/test/scripts/0000-Basic/0254 new file mode 100644 index 000000000..b4977a36a --- /dev/null +++ b/test/scripts/0000-Basic/0254 @@ -0,0 +1,28 @@ +# resent headers +exim -odq userx +From: f +To: t +Date: d +Subject: s +Resent-From: f +Resent-To: t +Resent-Date: d +Resent-Subject: should not exist +**** +exim -Mvh $msg1 +**** +exim -odq userx +From: f +Resent-From: f +**** +exim -Mvh $msg2 +**** +exim -odq userx +From: userx +To: xx@yy +Resent-From: userx +Resent-To: xx@yy +**** +exim -Mvh $msg3 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0255 b/test/scripts/0000-Basic/0255 new file mode 100644 index 000000000..e27e0e735 --- /dev/null +++ b/test/scripts/0000-Basic/0255 @@ -0,0 +1,21 @@ +# repeated unknown SMTP commands +exim -bs +one +two +three +four +five +six +**** +exim -bh V4NET.0.0.0 +one +two +three +four +five +six +**** +exim -DOPTION=smtp_max_unknown_commands=1 -bh V4NET.0.0.0 +one +two +**** diff --git a/test/scripts/0000-Basic/0256 b/test/scripts/0000-Basic/0256 new file mode 100644 index 000000000..0eefe7485 --- /dev/null +++ b/test/scripts/0000-Basic/0256 @@ -0,0 +1,4 @@ +# errors_copy +exim -odi unknown +. +**** diff --git a/test/scripts/0000-Basic/0257 b/test/scripts/0000-Basic/0257 new file mode 100644 index 000000000..43a1c3c18 --- /dev/null +++ b/test/scripts/0000-Basic/0257 @@ -0,0 +1,6 @@ +# fallback hosts on transport with dnslookup using A record +need_ipv4 +# +exim -odi abcd@ten-1.test.ex +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0258 b/test/scripts/0000-Basic/0258 new file mode 100644 index 000000000..13e176765 --- /dev/null +++ b/test/scripts/0000-Basic/0258 @@ -0,0 +1,44 @@ +# CRs in messages +exim -odi userx +crheader: includes <
> and ends CRLF
+Subject: this is still a header
+
+Text includes <
> and ends CRLF
+Text includes <
> and ends CRLF
+CR-dot-CR in body:
.
line continues +.
+**** +exim -i -odi userx +crheader: includes <
> and ends CRLF
+
+Text includes <
> and ends CRLF
+Text includes <
> and ends CRLF
+CR-dot-CR in body:
.
line continues +.
+**** +exim -odi userx +crheader: includes <
> and ends CRLF
+
+Text includes <
> and ends CRLF
+Text includes <
> and ends CRLF
+CR-dot-CR in body:
.
line continues +. +**** +exim -odi userx <DIR/aux-fixed/TESTNUM.m1 +**** +exim -odi userx <DIR/aux-fixed/TESTNUM.m2 +**** +exim -i -odi userx <DIR/aux-fixed/TESTNUM.m1 +**** +exim -i -odi userx <DIR/aux-fixed/TESTNUM.m2 +**** +exim -odi userx +.dotheader: header line starts with a dot +xxx: dot bare CR:.
xyz +.
weird header line +Not: a header line +**** +exim -odi -bs <DIR/aux-fixed/TESTNUM.m3 +**** +exim -odi -bs <DIR/aux-fixed/TESTNUM.m4 +**** diff --git a/test/scripts/0000-Basic/0259 b/test/scripts/0000-Basic/0259 new file mode 100644 index 000000000..211b473b3 --- /dev/null +++ b/test/scripts/0000-Basic/0259 @@ -0,0 +1,65 @@ +# ident queries +need_ipv4 +# +server 1413 +<999 , 25 +>999 , 25 : USERID : UNIX :abcd +**** +exim -bh 127.0.0.1 -oMa 127.0.0.1.999 -oMi '[127.0.0.1]:25' +helo a.b.c +quit +**** +# No CRLF send with output +server 1413 +<999 , 25 +>>999 , 25 : USERID : UNIX :abcd +**** +exim -bh 127.0.0.1 -oMa '[127.0.0.1]:999' -oMi 127.0.0.1.25 +helo a.b.c +quit +**** +# Non-printing characters +server 1413 +<999 , 25 +>999 , 25 : USERID : UNIX :ab
cd +**** +exim -bh 127.0.0.1 -oMa 127.0.0.1.999 -oMi 127.0.0.1.25 +helo a.b.c +quit +**** +# More than 127 but less than 2K +server 1413 +<999 , 25 +>999 , 25 : USERID : UNIX :abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++<<< +**** +exim -bh 127.0.0.1 -oMa 127.0.0.1.999 -oMi 127.0.0.1.25 +helo a.b.c +quit +**** +# More than 2K +server 1413 +<999 , 25 +>999 , 25 : USERID : UNIX :abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++abcdefghijklmnopqrstuvwxyz++++ +**** +exim -bh 127.0.0.1 -oMa 127.0.0.1.999 -oMi 127.0.0.1.25 +helo a.b.c +quit +**** +# Different spacing in the returned identity (1) +server 1413 +<999 , 25 +>999, 25 : USERID : UNIX :abcd +**** +exim -bh 127.0.0.1 -oMa 127.0.0.1.999 -oMi 127.0.0.1.25 +helo a.b.c +quit +**** +# Different spacing in the returned identity (2) +server 1413 +<999 , 25 +>999,25 : USERID : UNIX :abcd +**** +exim -bh 127.0.0.1 -oMa 127.0.0.1.999 -oMi 127.0.0.1.25 +helo a.b.c +quit +**** diff --git a/test/scripts/0000-Basic/0260 b/test/scripts/0000-Basic/0260 new file mode 100644 index 000000000..300814605 --- /dev/null +++ b/test/scripts/0000-Basic/0260 @@ -0,0 +1,6 @@ +# local delivery config problems +exim -odi bad.return bad.return2 bad.uid exp.fail userx +**** +exim -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0261 b/test/scripts/0000-Basic/0261 new file mode 100644 index 000000000..45e4e066b --- /dev/null +++ b/test/scripts/0000-Basic/0261 @@ -0,0 +1,8 @@ +# remote delivery config problems +need_ipv4 +# +exim -N -odi bad.return bad.return2 no.hosts userx +**** +exim -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0262 b/test/scripts/0000-Basic/0262 new file mode 100644 index 000000000..f0722c629 --- /dev/null +++ b/test/scripts/0000-Basic/0262 @@ -0,0 +1,4 @@ +# too many environment settings in pipe +exim -odi userx +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0263 b/test/scripts/0000-Basic/0263 new file mode 100644 index 000000000..4f4eb9190 --- /dev/null +++ b/test/scripts/0000-Basic/0263 @@ -0,0 +1,5 @@ +# pass_router +need_ipv4 +# +2 +exim -bt x@domain0 x@domain1 x@domain2 diff --git a/test/scripts/0000-Basic/0264 b/test/scripts/0000-Basic/0264 new file mode 100644 index 000000000..5d6bcfb29 --- /dev/null +++ b/test/scripts/0000-Basic/0264 @@ -0,0 +1,39 @@ +# retry rules and local parts +exim -odi userx@test.ex +**** +dump retry +exim -odi usery@test.ex +**** +exim -odq userz@test.ex +**** +exim -q +**** +exim -odi notuser@test.ex +**** +dump retry +exim -odi notuser2@test.ex +**** +exim -odq notuser3@test.ex +**** +exim -q +**** +exim -Mrm $msg1 $msg2 $msg3 $msg4 +**** +exim -odi r3.a@outside +**** +exim -odq r3.b@outside +**** +exim -q +**** +exim -Mrm $msg1 $msg2 +**** +exim -odi r4.a@outside +**** +exim -odq r4.b@outside +**** +exim -q +**** +exim -odi r5.a@r5domain.ex +**** +no_msglog_check +no_message_check diff --git a/test/scripts/0000-Basic/0265 b/test/scripts/0000-Basic/0265 new file mode 100644 index 000000000..9d8428cce --- /dev/null +++ b/test/scripts/0000-Basic/0265 @@ -0,0 +1,3 @@ +# error message when filter disabled +1 +exim -bt userx@x.y diff --git a/test/scripts/0000-Basic/0266 b/test/scripts/0000-Basic/0266 new file mode 100644 index 000000000..5c6ffa7e3 --- /dev/null +++ b/test/scripts/0000-Basic/0266 @@ -0,0 +1,18 @@ +# skip_syntax_errors and syntax_errors_to +exim -odi list@test.ex +**** +exim -odi list2@test.ex +Message to list2. +**** +exim -odi filter@test.ex +**** +exim -odi nmlist@test.ex +Message to nmlist. +**** +exim -odi filter2@test.ex +Message to filter2. +**** +exim -odi filter3@test.ex +Message to filter3. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0267 b/test/scripts/0000-Basic/0267 new file mode 100644 index 000000000..044eb073a --- /dev/null +++ b/test/scripts/0000-Basic/0267 @@ -0,0 +1,4 @@ +# prefix/suffix when router skipped +2 +exim -bt pre-x@test.ex x-post@test.ex pre-z@test.ex +**** diff --git a/test/scripts/0000-Basic/0268 b/test/scripts/0000-Basic/0268 new file mode 100644 index 000000000..2cb2f8376 --- /dev/null +++ b/test/scripts/0000-Basic/0268 @@ -0,0 +1,9 @@ +# redirect and owners/owngroups/modemask +cp DIR/aux-fixed/TESTNUM.exim DIR/test-owned-by-exim +sudo chown EXIMUSER:EXIMGROUP DIR/test-owned-by-exim +2 +exim -bt CALLER@r1 CALLER@r2 CALLER@r3 CALLER@r4 CALLER@r5 CALLER@r6 CALLER@r7 CALLER@r8 +**** +2 +exim -bt CALLER@r9 CALLER@r10 CALLER@r11 +**** diff --git a/test/scripts/0000-Basic/0269 b/test/scripts/0000-Basic/0269 new file mode 100644 index 000000000..9d8428cce --- /dev/null +++ b/test/scripts/0000-Basic/0269 @@ -0,0 +1,3 @@ +# error message when filter disabled +1 +exim -bt userx@x.y diff --git a/test/scripts/0000-Basic/0270 b/test/scripts/0000-Basic/0270 new file mode 100644 index 000000000..bf29b941e --- /dev/null +++ b/test/scripts/0000-Basic/0270 @@ -0,0 +1,22 @@ +# skip_syntax_errors and syntax_errors_to +touch DIR/test-private +sudo chown EXIMUSER DIR/test-private +sudo chmod 0600 DIR/test-private +# +exim -odi list@test.ex +**** +exim -odi list2@test.ex +Message to list2. +**** +exim -odi filter@test.ex +**** +exim -odi nmlist@test.ex +Message to nmlist. +**** +exim -odi filter2@test.ex +Message to filter2. +**** +exim -odi filter3@test.ex +Message to filter3. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0271 b/test/scripts/0000-Basic/0271 new file mode 100644 index 000000000..044eb073a --- /dev/null +++ b/test/scripts/0000-Basic/0271 @@ -0,0 +1,4 @@ +# prefix/suffix when router skipped +2 +exim -bt pre-x@test.ex x-post@test.ex pre-z@test.ex +**** diff --git a/test/scripts/0000-Basic/0272 b/test/scripts/0000-Basic/0272 new file mode 100644 index 000000000..7a1301939 --- /dev/null +++ b/test/scripts/0000-Basic/0272 @@ -0,0 +1,10 @@ +# redirect and owners/owngroups/modemask +sudo chown EXIMUSER:EXIMGROUP DIR/aux-var/TESTNUM.exim +sudo chmod 0644 DIR/aux-var/TESTNUM.exim +# +2 +exim -bt CALLER@r1 CALLER@r2 CALLER@r3 CALLER@r4 CALLER@r5 CALLER@r6 CALLER@r7 CALLER@r8 +**** +2 +exim -bt CALLER@r9 CALLER@r10 CALLER@r11 +**** diff --git a/test/scripts/0000-Basic/0273 b/test/scripts/0000-Basic/0273 new file mode 100644 index 000000000..a5c74d2ae --- /dev/null +++ b/test/scripts/0000-Basic/0273 @@ -0,0 +1,19 @@ +# require_files and user tests +sudo chown EXIMUSER:EXIMGROUP DIR/aux-var/TESTNUM.exim +sudo chmod 0640 DIR/aux-var/TESTNUM.exim +# +2 +exim -bt userx@r1 userx@r2 userx@r3 userx@r4 userx@r5 userx@r6 userx@r7 userx@r8 +**** +exim -bs +vrfy userx@r1 +vrfy userx@r2 +vrfy userx@r3 +vrfy userx@r4 +vrfy userx@r5 +vrfy userx@r6 +vrfy userx@r7 +vrfy userx@r8 +vrfy userx@r9 +quit +**** diff --git a/test/scripts/0000-Basic/0274 b/test/scripts/0000-Basic/0274 new file mode 100644 index 000000000..6431eb0d7 --- /dev/null +++ b/test/scripts/0000-Basic/0274 @@ -0,0 +1,4 @@ +# address_data +exim -odi userx@r1 userx@r2 userx@r3 userx@r4 userx@r5 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0275 b/test/scripts/0000-Basic/0275 new file mode 100644 index 000000000..410efa8d3 --- /dev/null +++ b/test/scripts/0000-Basic/0275 @@ -0,0 +1,5 @@ +# named domain lists +exim -d -bt userx@test.ex +**** +exim -d -odi userx@test.ex +**** diff --git a/test/scripts/0000-Basic/0276 b/test/scripts/0000-Basic/0276 new file mode 100644 index 000000000..467c11e49 --- /dev/null +++ b/test/scripts/0000-Basic/0276 @@ -0,0 +1,36 @@ +# 5xx after DATA +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +500 NO +QUIT +200 OK +**** +exim -v -odi userx@test.ex +**** +server PORT_S +220 Server ready +EHLO +250-server id +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +500 NO +QUIT +200 OK +**** +exim -v -odi userx@test.ex +**** diff --git a/test/scripts/0000-Basic/0277 b/test/scripts/0000-Basic/0277 new file mode 100644 index 000000000..20c2454c6 --- /dev/null +++ b/test/scripts/0000-Basic/0277 @@ -0,0 +1,16 @@ +# named host lists +exim -d -bh V4NET.2.3.4 +quit +**** +exim -d -bh V4NET.6.7.8 +quit +**** +exim -d -bh V4NET.10.11.12 +quit +**** +exim -d -bh V4NET.1.1.1 +quit +**** +exim -d -bh V4NET.2.2.2 +quit +**** diff --git a/test/scripts/0000-Basic/0278 b/test/scripts/0000-Basic/0278 new file mode 100644 index 000000000..48c5172af --- /dev/null +++ b/test/scripts/0000-Basic/0278 @@ -0,0 +1,8 @@ +# named local part lists +exim -d -bt CALLER@test.ex +**** +exim -d -odi CALLER@test.ex +**** +2 +exim -d -bt unknown@test.ex +**** diff --git a/test/scripts/0000-Basic/0279 b/test/scripts/0000-Basic/0279 new file mode 100644 index 000000000..b10d79bb0 --- /dev/null +++ b/test/scripts/0000-Basic/0279 @@ -0,0 +1,6 @@ +# named address lists +exim -d -f CALLER@test.ex -bt CALLER@test.ex +**** +2 +exim -d -f user1@fun.1 -bt CALLER@test.ex +**** diff --git a/test/scripts/0000-Basic/0280 b/test/scripts/0000-Basic/0280 new file mode 100644 index 000000000..00cca8f7b --- /dev/null +++ b/test/scripts/0000-Basic/0280 @@ -0,0 +1,6 @@ +# errors_copy +exim -odi -f spqr@test.ex spqr@test.ex +**** +exim -odi -f abcd@test.ex abcd@test.ex +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0281 b/test/scripts/0000-Basic/0281 new file mode 100644 index 000000000..ae5624792 --- /dev/null +++ b/test/scripts/0000-Basic/0281 @@ -0,0 +1,39 @@ +# @ items in domain lists and host lists +exim -bh V4NET.1.1.1 +mail from:<x@y> +rcpt to:<1@myhost.test.ex> +rcpt to:<1@[127.0.0.1]> +rcpt to:<1@else.where> +rcpt to:<2@mxt13.test.ex> +rcpt to:<2@mxt1.test.ex> +rcpt to:<2@mxt6.test.ex> +rcpt to:<2@mxt9.test.ex> +rcpt to:<2@mxnone.test.ex> +rcpt to:<3@mxt5.test.ex> +rcpt to:<3@mxt6.test.ex> +rcpt to:<3@mxt9.test.ex> +rcpt to:<3@mxnone.test.ex> +rcpt to:<4@mxt5.test.ex> +rcpt to:<4@mxt6.test.ex> +rcpt to:<4@mxt9.test.ex> +rcpt to:<4@mxnone.test.ex> +rcpt to:<5@myhost.test.ex> +quit +**** +exim -bh V4NET.10.10.10 +mail from:<x@y> +rcpt to:<5@myhost.test.ex> +quit +**** +exim -bh 127.0.0.1 +mail from:<x@y> +rcpt to:<5@myhost.test.ex> +quit +**** +exim -bh V4NET.1.1.1 +mail from:<x@y> +rcpt to:<2@mxt3.test.ex> +rcpt to:<3@mxt3.test.ex> +rcpt to:<4@mxt3.test.ex> +quit +**** diff --git a/test/scripts/0000-Basic/0282 b/test/scripts/0000-Basic/0282 new file mode 100644 index 000000000..f53e8a9fb --- /dev/null +++ b/test/scripts/0000-Basic/0282 @@ -0,0 +1,46 @@ +# Multiple ports on a server +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D3 +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test message. +. +??? 250 +quit +??? 221 +**** +client 127.0.0.1 PORT_D2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test message. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -q +**** diff --git a/test/scripts/0000-Basic/0283 b/test/scripts/0000-Basic/0283 new file mode 100644 index 000000000..dd0d48d1e --- /dev/null +++ b/test/scripts/0000-Basic/0283 @@ -0,0 +1,10 @@ +# Default uid for delivery and never_users +exim -odi -d-all+uid somebody +test +. +**** +exim -odi -d-all+uid never +test to root +. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0284 b/test/scripts/0000-Basic/0284 new file mode 100644 index 000000000..65bb051cc --- /dev/null +++ b/test/scripts/0000-Basic/0284 @@ -0,0 +1,13 @@ +# batching controls for local delivery +exim -odi x-t1 y-t1 +. +**** +exim -odi x-t2 y-t2 +. +**** +exim -odi x-t3 y-t3 z-t3@other.domain +. +**** +exim -odi x-t4 y-t4 xx-t4 yy-t4 +. +**** diff --git a/test/scripts/0000-Basic/0285 b/test/scripts/0000-Basic/0285 new file mode 100644 index 000000000..1ecc64202 --- /dev/null +++ b/test/scripts/0000-Basic/0285 @@ -0,0 +1,102 @@ +# max_rcpt and connection_max_messages (no parallelism) +need_ipv4 +# +exim -odq a b c d e f +. +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +550 Recipient not OK +RCPT TO: +550 Recipient not OK +RSET +250 OK +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 -odi -q +**** +exim -odq a b c d e f g h +. +**** +server PORT_S 2 +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +550 Recipient not OK +RCPT TO: +550 Recipient not OK +RSET +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +*eof +220 ESMTP +EHLO +250-OK +250 HELP +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 -odi -q +**** diff --git a/test/scripts/0000-Basic/0286 b/test/scripts/0000-Basic/0286 new file mode 100644 index 000000000..61c8b5173 --- /dev/null +++ b/test/scripts/0000-Basic/0286 @@ -0,0 +1,153 @@ +# max_rcpt and connection_max_messages (2x parallel) +need_ipv4 +# +# There are deliveries in parallel in this script, and the processes that +# run in parallel may not finish in the same order on different hosts. (Indeed, +# they always seem to finish in precisely the opposite orders on Linux and +# FreeBSD.) For that reason, we do a hacked-up sort on the log file right at +# the end, to ensure that the log lines are always in the same order. +# +exim -odq a b c d e f +. +**** +server PORT_S 2 +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +550 Recipient not OK +QUIT +250 OK +*eof +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +550 Recipient not OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -q +**** +exim -q +**** +exim -odq a b c d e f g h +. +**** +server PORT_S 2 +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +550 Recipient not OK +RCPT TO: +550 Recipient not OK +RSET +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +*eof +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +550 Recipient not OK +RCPT TO: +550 Recipient not OK +RSET +250 OK +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 -q +**** +# This is the hack to sort the log lines. Search for groups of delivery log +# lines (**, =>, and -> lines), and sort them according to the local part of +# the address. +# +sudo perl +open(IN, "DIR/spool/log/mainlog") || + die "Can't open DIR/spool/log/mainlog: $!\n"; +@lines = <IN>; +close(IN); + +for ($i = 0; $i < @lines; $i++) + { + next unless $lines[$i] =~ / \*\* | => | -> /; + for ($j = $i + 1; $j < @lines; $j++) + { last if $lines[$j] !~ / \*\* | => | -> /; } + + @sublist = splice @lines, $i, $j - $i; + @sublist = sort { + my($x) = $a =~ /(?: \*\* | => | -> )([^@]+)/; + my($y) = $b =~ /(?: \*\* | => | -> )([^@]+)/; + return $x cmp $y; + } @sublist; + + splice @lines, $i, 0, @sublist; + $i = $j; + } + +open (OUT, ">DIR/spool/log/mainlog") || + die "Can't open DIR/spool/log/mainlog: $!\n"; +print OUT @lines; +close(OUT); +**** diff --git a/test/scripts/0000-Basic/0287 b/test/scripts/0000-Basic/0287 new file mode 100644 index 000000000..7ef2fccfb --- /dev/null +++ b/test/scripts/0000-Basic/0287 @@ -0,0 +1,26 @@ +# ETRN serialization +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +ETRN one +??? 250 +ETRN one +??? 458 +ETRN two +??? 250 ++++ 2 +ETRN one +??? 250 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/0000-Basic/0288 b/test/scripts/0000-Basic/0288 new file mode 100644 index 000000000..7b867cedb --- /dev/null +++ b/test/scripts/0000-Basic/0288 @@ -0,0 +1,26 @@ +# serialize_hosts +need_ipv4 +# +exim -odq a b +. +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +*sleep 2 +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -q +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0289 b/test/scripts/0000-Basic/0289 new file mode 100644 index 000000000..2483b3706 --- /dev/null +++ b/test/scripts/0000-Basic/0289 @@ -0,0 +1,15 @@ +# recipients_max +1 +exim -odi userx usery +From: me + +Body +. +**** +1 +exim -odi -oep userx usery +From: me + +Body +. +**** diff --git a/test/scripts/0000-Basic/0290 b/test/scripts/0000-Basic/0290 new file mode 100644 index 000000000..48907f4fc --- /dev/null +++ b/test/scripts/0000-Basic/0290 @@ -0,0 +1,9 @@ +# .include and macro tests +exim -bP local_interfaces message_size_limit recipients_max remote_sort_domains receive_timeout +**** +exim -DRT= -bP receive_timeout +**** +exim -DRT -bP receive_timeout +**** +exim '-D RT = receive_timeout = 4s ' -bP receive_timeout +**** diff --git a/test/scripts/0000-Basic/0291 b/test/scripts/0000-Basic/0291 new file mode 100644 index 000000000..7dff7b18e --- /dev/null +++ b/test/scripts/0000-Basic/0291 @@ -0,0 +1,3 @@ +# repeat_use +exim -v -bv a@one b@one a@two b@two +**** diff --git a/test/scripts/0000-Basic/0292 b/test/scripts/0000-Basic/0292 new file mode 100644 index 000000000..3ca0bf6d6 --- /dev/null +++ b/test/scripts/0000-Basic/0292 @@ -0,0 +1,5 @@ +# manualroute passing hosts to local & remote transports +need_ipv4 +# +exim -odi -v -N userx@t1 userx@t2 +**** diff --git a/test/scripts/0000-Basic/0293 b/test/scripts/0000-Basic/0293 new file mode 100644 index 000000000..159353530 --- /dev/null +++ b/test/scripts/0000-Basic/0293 @@ -0,0 +1,22 @@ +# smtp_accept_{max,queue}_per_connection +exim -odi -v -bs +mail from:<x@y> +rcpt to:<one@z> +data +. +mail from:<x@y> +rcpt to:<two@z> +data +. +mail from:<x@y> +quit +**** +exim -odi -v -bs +mail from:<x@y> +rset +mail from:<x@y> +rset +mail from:<x@y> +quit +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0294 b/test/scripts/0000-Basic/0294 new file mode 100644 index 000000000..bbb595ddd --- /dev/null +++ b/test/scripts/0000-Basic/0294 @@ -0,0 +1,44 @@ +# SMTP rate limiting using smtp_ratelimit_xxx settings +exim -d-all+receive -odq -bs +mail from:<x@y> +rcpt to:<one@z> +rcpt to:<one@z> +rcpt to:<one@z> +rcpt to:<one@z> +rcpt to:<one@z> +data +. +mail from:<x@y> +rcpt to:<two@z> +data +. +mail from:<x@y> +quit +**** +exim -d-all+receive -bh 1.2.3.4 +mail from:<x@y> +rcpt to:<one@z> +rcpt to:<one@z> +quit +**** +exim -d-all+receive -bh V4NET.9.8.7 +mail from:<x@y> +rcpt to:<one@z> +rcpt to:<one@z> +quit +**** +exim -d-all+receive -odq -bs +mail from:<x@y> +rcpt to:<reject@z> +rcpt to:<reject@z> +rcpt to:<reject@z> +rcpt to:<reject@z> +rcpt to:<reject@z> +rset +mail from:<x@y> +rcpt to:<reject@z> +rset +mail from:<x@y> +quit +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0295 b/test/scripts/0000-Basic/0295 new file mode 100644 index 000000000..4b6183705 --- /dev/null +++ b/test/scripts/0000-Basic/0295 @@ -0,0 +1,15 @@ +# received_headers_max +exim -odi userx usery +Received: from here to eternity +Received: another time + +Test junk data +. +**** +exim -odi -f '<>' userx usery +Received: from here to eternity +Received: another time + +Test junk data +. +**** diff --git a/test/scripts/0000-Basic/0296 b/test/scripts/0000-Basic/0296 new file mode 100644 index 000000000..fb6bd3fc3 --- /dev/null +++ b/test/scripts/0000-Basic/0296 @@ -0,0 +1,9 @@ +# 'fail' in system filter +exim -odi failure +Test junk data +. +**** +exim -odi -f '<>' failure +Test junk data +. +**** diff --git a/test/scripts/0000-Basic/0297 b/test/scripts/0000-Basic/0297 new file mode 100644 index 000000000..2ce6ca308 --- /dev/null +++ b/test/scripts/0000-Basic/0297 @@ -0,0 +1,17 @@ +# expandable file/directory transports +exim -d-all+route -bt /a/b/c +**** +exim -d-all+route -bt /x/y/z +**** +exim -bt /a/b/c/ +**** +exim -bt /a/a/b// +**** +exim -odi -N -f fil@ter /a/b/c +**** +exim -odi -N -f fil@ter /x/y/z +**** +exim -odi -N -f fil@ter /a/b/c/ +**** +exim -odi -N -f fil@ter /a/b/c// +**** diff --git a/test/scripts/0000-Basic/0298 b/test/scripts/0000-Basic/0298 new file mode 100644 index 000000000..1435d9d78 --- /dev/null +++ b/test/scripts/0000-Basic/0298 @@ -0,0 +1,5 @@ +# different logging text for system filter fail messages +exim -odi failure1 +**** +exim -odi failure2 +**** diff --git a/test/scripts/0000-Basic/0299 b/test/scripts/0000-Basic/0299 new file mode 100644 index 000000000..b89a756c8 --- /dev/null +++ b/test/scripts/0000-Basic/0299 @@ -0,0 +1,32 @@ +# log delivery_size +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -odi abc@test.ex xyz1@ex.test xyz2@ex.test xyz3@ex.test +**** +no_message_check diff --git a/test/scripts/0000-Basic/0300 b/test/scripts/0000-Basic/0300 new file mode 100644 index 000000000..053aec804 --- /dev/null +++ b/test/scripts/0000-Basic/0300 @@ -0,0 +1,115 @@ +# SMTP synchronization checks, with and without PIPELINING +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo abcd\r\nmail from:<userx@test.ex> +??? 554 +**** +# The pause (+++ 1) in the middle of this is to be sure the first message is +# delivered before generating the sync error; without it, there's a race. +client 127.0.0.1 PORT_D +??? 220 +ehlo abcd +??? 250- +??? 250- +??? 250- +??? 250 +rset\r\nmail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata +??? 250 +??? 250 +??? 250 +??? 354 +the message +.\r\nmail from:<userx@test.ex> ++++ 1 +rcpt to:<userx@test.ex>\r\ndata\r\nthe message\r\nsecond line +??? 250 +??? 250 +??? 250 +??? 554 +**** +sleep 1 +# This time, don't send EHLO +client 127.0.0.1 PORT_D +??? 220 +helo abcd +??? 250 +mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex> +??? 554 +**** +# This shouldn't get advertised pipelining +client HOSTIPV4 PORT_D +??? 220 +ehlo abcd +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex> +??? 554 +**** +# Check on unrecognized commands +client HOSTIPV4 PORT_D +??? 220 +junk0 +??? 500 +junk1\r\njunk2 +??? 554 +**** +# Check on RSET and QUIT +client 127.0.0.1 PORT_D +??? 220 +ehlo abcd +??? 250- +??? 250- +??? 250- +??? 250 +rset\r\nquit +??? 250 +??? 221 +**** +# Check on RSET and QUIT +client HOSTIPV4 PORT_D +??? 220 +ehlo abcd +??? 250- +??? 250- +??? 250 +rset\r\nquit +??? 554 +**** +# This one disables the check dynamically +client 127.0.0.1 PORT_D +??? 220 +ehlo dis.able +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata\r\nthe message\r\nsecond line +. +??? 250 +??? 250 +??? 354 +??? 250 +quit +??? 221 +**** +killdaemon +# In these next tests, PIPELINING is not advertised, and the server delays for +# 1s before trying to send the banner to give the client time to send input. +exim -DPAH= -DDELAY=1s -DSERVER=server -bd -oX PORT_D +**** +# Send HELO without waiting for greeting +client -t2 127.0.0.1 PORT_D +helo abcd +??? 554 +**** +# Disconnect without waiting for the greeting. This should +# test the check for input that happens before sending the +# banner (there was a bug at one point; missing error check). +client -t2 127.0.0.1 PORT_D +**** +killdaemon diff --git a/test/scripts/0000-Basic/0301 b/test/scripts/0000-Basic/0301 new file mode 100644 index 000000000..4add8f42c --- /dev/null +++ b/test/scripts/0000-Basic/0301 @@ -0,0 +1,54 @@ +# SMTP synchronization checks disabled, with and without PIPELINING +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo abcd\r\nmail from:<userx@test.ex> +??? 250- +??? 250- +??? 250- +??? 250 +??? 250 +quit +??? 221 +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo abcd +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata +??? 250 +??? 250 +??? 354 +the message +.\r\nmail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata\r\nthe message +??? 250 +??? 250 +??? 250 +??? 354 +. +??? 250 +quit +??? 221 +**** +# For this one, the check will be dyamically turned on again +client 127.0.0.1 PORT_D +??? 220 +ehlo en.force +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata\r\nthe message +. +??? 250 +??? 250 +??? 554 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/0000-Basic/0302 b/test/scripts/0000-Basic/0302 new file mode 100644 index 000000000..413c3a2af --- /dev/null +++ b/test/scripts/0000-Basic/0302 @@ -0,0 +1,18 @@ +# -qi (deliver messages not yet tried) +exim abcd defer +message 1 +**** +exim -qi +**** +exim -bp +**** +exim wxyz +message 2 +**** +exim -qi +**** +exim -qif +**** +exim -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0303 b/test/scripts/0000-Basic/0303 new file mode 100644 index 000000000..854206e4a --- /dev/null +++ b/test/scripts/0000-Basic/0303 @@ -0,0 +1,30 @@ +# helo_lookup_domains (default setting) and helo literals +exim -bh V4NET.0.0.1 +helo myhost.test.ex +quit +**** +exim -bh V4NET.0.0.1 +ehlo [127.0.0.1] +quit +**** +exim -bh V4NET.0.0.1 +helo rhubarb.custard +quit +**** +exim -d -bh V4NET.2.3.4 +EHLO [V4NET.2.3.4] +mail from:<> +rcpt to:<x@y> +data +. +quit +**** +exim -d -bh V4NET.2.3.4 -oMs host.name.tld +EHLO [V4NET.2.3.4] +mail from:<> +rcpt to:<x@y> +data +. +quit +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0304 b/test/scripts/0000-Basic/0304 new file mode 100644 index 000000000..8b1c39d0f --- /dev/null +++ b/test/scripts/0000-Basic/0304 @@ -0,0 +1,34 @@ +# address lists +exim -bh 1.2.3.4 +mail from:<> +rcpt to:<b1@x> +rcpt to:<b2@x> +rcpt to:<b9@x> +rset +mail from:<x@y> +rcpt to:<abc@w.x.y.z> +rcpt to:<abcdef@q.x.y.z> +rcpt to:<a@b> +rcpt to:<ok@ok> +rcpt to:<x@a.b.c> +rcpt to:<abc@d.e.f> +rcpt to:<x@d.e.f> +rcpt to:<abc@at.1> +rcpt to:<xyz@at.1> +rcpt to:<abcxyz@at.1> +rcpt to:<ok@at.1> +rcpt to:<x@domain.only> +rcpt to:<x@abc.domain2.only> +rcpt to:<x@domain2.only> +rcpt to:<abc@domain3> +rcpt to:<xyz@x.domain4> +rcpt to:<abc@x.domain4> +rcpt to:<xyz@domain3> +rcpt to:<pqr@myhost.test.ex> +rcpt to:<xxx@myhost.test.ex> +rcpt to:<a@domain5> +rcpt to:<xyz@domain6> +rcpt to:<abc@domain6> +rcpt to:<x@domain7> +quit +**** diff --git a/test/scripts/0000-Basic/0305 b/test/scripts/0000-Basic/0305 new file mode 100644 index 000000000..e6b752363 --- /dev/null +++ b/test/scripts/0000-Basic/0305 @@ -0,0 +1,10 @@ +# expansion in domain lists +exim -bh V4NET.2.3.4 +mail from:<x@y> +rcpt to:<x@ten-1.test.ex> +rcpt to:<x@junk.junk> +quit +**** +2 +exim -bv x@ten-1.test.ex x@junk.junk +**** diff --git a/test/scripts/0000-Basic/0306 b/test/scripts/0000-Basic/0306 new file mode 100644 index 000000000..8a2dc9110 --- /dev/null +++ b/test/scripts/0000-Basic/0306 @@ -0,0 +1,23 @@ +# closed mailing lists (3 routers) +exim -odi -f anyone@anywhere list1-request@lists.test.ex +**** +exim -odi -f sub1@test.ex list1@lists.test.ex +**** +exim -odi -f anyone@anywhere list1@lists.test.ex +**** +exim -odi -f anyone@anywhere nonlist@lists.test.ex +**** +exim -bh 1.2.3.4 +mail from:<anyone@anywhere> +rcpt to:<list1-request@lists.test.ex> +rset +mail from:<sub1@test.ex> +rcpt to:<list1@lists.test.ex> +rset +mail from:<anyone@anywhere> +rcpt to:<list1@lists.test.ex> +rset +mail from:<anyone@anywhere> +rcpt to:<nonlist@lists.test.ex> +quit +**** diff --git a/test/scripts/0000-Basic/0307 b/test/scripts/0000-Basic/0307 new file mode 100644 index 000000000..72985608b --- /dev/null +++ b/test/scripts/0000-Basic/0307 @@ -0,0 +1,9 @@ +# closed mailing lists (2 routers) +exim -odi -f anyone@anywhere list1-request@lists.test.ex +**** +exim -odi -f sub1@test.ex list1@lists.test.ex +**** +exim -odi -f anyone@anywhere list1@lists.test.ex +**** +exim -odi -f anyone@anywhere nonlist@lists.test.ex +**** diff --git a/test/scripts/0000-Basic/0308 b/test/scripts/0000-Basic/0308 new file mode 100644 index 000000000..39b9ba259 --- /dev/null +++ b/test/scripts/0000-Basic/0308 @@ -0,0 +1,11 @@ +# host lists and unknown host names - maximal checking +exim -bh V4NET.0.0.97 +mail from:<x@y> +rcpt to:<z@z> +quit +**** +exim -bh V4NET.0.0.1 +mail from:<x@y> +rcpt to:<z@z> +quit +**** diff --git a/test/scripts/0000-Basic/0309 b/test/scripts/0000-Basic/0309 new file mode 100644 index 000000000..81d4d40bb --- /dev/null +++ b/test/scripts/0000-Basic/0309 @@ -0,0 +1,25 @@ +# expansion of message_size_limit on transport +exim -odi 50 55 1k 44litres +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +This is a test message. This is a test message. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0310 b/test/scripts/0000-Basic/0310 new file mode 100644 index 000000000..e3ae01c4c --- /dev/null +++ b/test/scripts/0000-Basic/0310 @@ -0,0 +1,4 @@ +# bounce message for quota exceeded; no_bounce_return_message +exim -odi abcd +This is a test message. This is a test message. +**** diff --git a/test/scripts/0000-Basic/0311 b/test/scripts/0000-Basic/0311 new file mode 100644 index 000000000..4a7132ed7 --- /dev/null +++ b/test/scripts/0000-Basic/0311 @@ -0,0 +1,16 @@ +# return-path, delivery-date, envelope-to removal +exim -odq xx +return-path: x@y +Delivery-date: Mon, 08 May 2000 11:07:20 +0100 +envelope-to: p@q +**** +exim -Mvh $msg1 +**** +exim -DDYNAMIC_OPTION=return_path_remove=no -odq xx +return-path: x@y +Delivery-date: Mon, 08 May 2000 11:07:20 +0100 +envelope-to: p@q +**** +exim -Mvh $msg2 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0312 b/test/scripts/0000-Basic/0312 new file mode 100644 index 000000000..19cab2c0a --- /dev/null +++ b/test/scripts/0000-Basic/0312 @@ -0,0 +1,6 @@ +# RBL timeout logging +exim -bh V4NET.0.0.1 +mail from:<userx@x> +rcpt to:<userx@y> +quit +**** diff --git a/test/scripts/0000-Basic/0313 b/test/scripts/0000-Basic/0313 new file mode 100644 index 000000000..c118a28d8 --- /dev/null +++ b/test/scripts/0000-Basic/0313 @@ -0,0 +1,13 @@ +# limits on filter and include file size +# +# Make a file that has a huge hole in it +perl +open(OUT, ">DIR/test-holey"); +seek OUT, 104857620, 0; +print OUT "End\n"; +close(OUT); +**** +# +exim -odi filter include +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0314 b/test/scripts/0000-Basic/0314 new file mode 100644 index 000000000..6fec248d8 --- /dev/null +++ b/test/scripts/0000-Basic/0314 @@ -0,0 +1,5 @@ +# host_reject_connection +exim -bh V4NET.0.0.1 +**** +exim -bh V4NET.0.0.2 +**** diff --git a/test/scripts/0000-Basic/0315 b/test/scripts/0000-Basic/0315 new file mode 100644 index 000000000..e6fc59bb9 --- /dev/null +++ b/test/scripts/0000-Basic/0315 @@ -0,0 +1,7 @@ +# same_domain_copy_routing +need_ipv4 +# +exim -odi -d-all+route -N x@ten-1.test.ex y@ten-1.test.ex +**** +exim -odi -d-all+route -N x@ten-2.test.ex y@ten-2.test.ex +**** diff --git a/test/scripts/0000-Basic/0316 b/test/scripts/0000-Basic/0316 new file mode 100644 index 000000000..7a5cc26ba --- /dev/null +++ b/test/scripts/0000-Basic/0316 @@ -0,0 +1,4 @@ +# foranyaddress +exim -bf DIR/aux-fixed/TESTNUM.f-user </dev/null +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0317 b/test/scripts/0000-Basic/0317 new file mode 100644 index 000000000..021246ecb --- /dev/null +++ b/test/scripts/0000-Basic/0317 @@ -0,0 +1,19 @@ +# Use of -t, with and without resent- +exim -d-all+receive -odq -t +To: x@y.z +Cc: a@b.c +Bcc: p@q.r +. +**** +exim -d-all+receive -odq -t +To: x@y.z +Cc: a@b.c +Bcc: p@q.r +Resent-to: aa@bb.cc +Resent-cc: pp@qq.rr +Resent-bcc: xx@yy.zz +. +**** +exim -bp +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0318 b/test/scripts/0000-Basic/0318 new file mode 100644 index 000000000..eb312a678 --- /dev/null +++ b/test/scripts/0000-Basic/0318 @@ -0,0 +1,8 @@ +# file name in directory +exim -odi userx@test.ex +This is the first message. +**** +exim -odi userx@test.ex +This is the second message. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0319 b/test/scripts/0000-Basic/0319 new file mode 100644 index 000000000..ec4a098ef --- /dev/null +++ b/test/scripts/0000-Basic/0319 @@ -0,0 +1,11 @@ +# filter does significant delivery +exim -odi userx@test.ex +subject: file + +This is the first message. +**** +exim -odi userx@test.ex +subject: discard + +This is the second message. +**** diff --git a/test/scripts/0000-Basic/0320 b/test/scripts/0000-Basic/0320 new file mode 100644 index 000000000..c031567ef --- /dev/null +++ b/test/scripts/0000-Basic/0320 @@ -0,0 +1,14 @@ +# comments and +caseful in local part lists +exim -odq -bs +mail from:<x@y> +rcpt to:<lp1@z> +rcpt to:<LP1@z> +rcpt to:<lp2@z> +rcpt to:<LP2@z> +rcpt to:<lp#3@z> +rcpt to:<lp#4#@z> +rcpt to:<bad@z> +rcpt to:<LP10@z> +rcpt to:<lp10@z> +quit +**** diff --git a/test/scripts/0000-Basic/0321 b/test/scripts/0000-Basic/0321 new file mode 100644 index 000000000..01c5633e4 --- /dev/null +++ b/test/scripts/0000-Basic/0321 @@ -0,0 +1,4 @@ +# local part starting | routed to pipe +exim -odi '|/bin/cat\ /etc/aliases\ ' +quit +**** diff --git a/test/scripts/0000-Basic/0322 b/test/scripts/0000-Basic/0322 new file mode 100644 index 000000000..e317eb784 --- /dev/null +++ b/test/scripts/0000-Basic/0322 @@ -0,0 +1,169 @@ +# Error messages for outgoing pipelining and non-pipelining +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +> +QUIT +250 OK +**** +exim -odi x@test.ex +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +250 Sender OK +RCPT TO: +> +DATA +550 Failed DATA +QUIT +250 OK +**** +exim -odi x@test.ex +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +> +RCPT TO: +550 Can't send RCPT +DATA +550 Can't send DATA +QUIT +250 OK +**** +exim -odi x@test.ex +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +250 Sender OK +RCPT TO: +250 First RCPT OK +RCPT TO: +> +250 Second RCPT malformed +RCPT TO: +250 Third RCPT OK +DATA +550 Failed DATA +QUIT +250 OK +**** +exim -odi x@test.ex y@test.ex z@test.ex +**** +# Temporarily reject all recipients in pipelining, and also data; +# the client shouldn't bother with the data error. +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +250 Sender OK +RCPT TO: +450 Recipient bad +RCPT TO: +450 Recipient bad +DATA +550 Data not expected +QUIT +250 OK +**** +exim -odi a@test.ex b@test.ex +**** +# +########### NON PIPELINING ########## +# +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +> +QUIT +250 OK +**** +exim -odi x@test.ex +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +> +DATA +550 Failed DATA +QUIT +250 OK +**** +exim -odi x@test.ex +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +> +RCPT TO: +550 Can't send RCPT +DATA +550 Can't send DATA +QUIT +250 OK +**** +exim -odi x@test.ex +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL FROM: +250 Sender OK +RCPT TO: +250 First RCPT OK +RCPT TO: +> +250 Second RCPT malformed +RCPT TO: +250 Third RCPT OK +DATA +550 Failed DATA +QUIT +250 OK +**** +exim -odi x@test.ex y@test.ex z@test.ex +**** diff --git a/test/scripts/0000-Basic/0323 b/test/scripts/0000-Basic/0323 new file mode 100644 index 000000000..cff75d41c --- /dev/null +++ b/test/scripts/0000-Basic/0323 @@ -0,0 +1,3 @@ +# quote handling in route_list +exim -v -bv x@y +**** diff --git a/test/scripts/0000-Basic/0324 b/test/scripts/0000-Basic/0324 new file mode 100644 index 000000000..56d6ffd52 --- /dev/null +++ b/test/scripts/0000-Basic/0324 @@ -0,0 +1,9 @@ +# $message_headers +write test-data 655x100=__continued... +X-Long: This is a very long header +++++ + This is the final line which should get chopped. +X-Long: This is another header with the same name. +**** +exim -odi userx <test-data +**** diff --git a/test/scripts/0000-Basic/0325 b/test/scripts/0000-Basic/0325 new file mode 100644 index 000000000..b2109f096 --- /dev/null +++ b/test/scripts/0000-Basic/0325 @@ -0,0 +1,8 @@ +# $domain_data and $local_part_data +exim -v -bt xxx@a.b.c +**** +exim -bh V4NET.0.0.0 +mail from:a@b.c +rcpt to:xxx@a.b.c +quit +**** diff --git a/test/scripts/0000-Basic/0326 b/test/scripts/0000-Basic/0326 new file mode 100644 index 000000000..77eeba275 --- /dev/null +++ b/test/scripts/0000-Basic/0326 @@ -0,0 +1,7 @@ +# prefix/suffix in $original_local_part +exim -odi pppp-userx@test.ex +**** +exim -odi userx+ssss@test.ex +**** +exim -odi userx@test.ex +**** diff --git a/test/scripts/0000-Basic/0327 b/test/scripts/0000-Basic/0327 new file mode 100644 index 000000000..2cbc1f3a4 --- /dev/null +++ b/test/scripts/0000-Basic/0327 @@ -0,0 +1,3 @@ +# Redirection to same address, and "unseen" +exim -odi userx@test.ex +**** diff --git a/test/scripts/0000-Basic/0328 b/test/scripts/0000-Basic/0328 new file mode 100644 index 000000000..129aa8c40 --- /dev/null +++ b/test/scripts/0000-Basic/0328 @@ -0,0 +1,4 @@ +# System filter munges headers, running as root +exim -odi userx@test.ex +Remove: this header should get removed +**** diff --git a/test/scripts/0000-Basic/0329 b/test/scripts/0000-Basic/0329 new file mode 100644 index 000000000..9ec5964f8 --- /dev/null +++ b/test/scripts/0000-Basic/0329 @@ -0,0 +1,4 @@ +# System filter munges headers, running as exim +exim -odi userx@test.ex +Remove: this header should get removed +**** diff --git a/test/scripts/0000-Basic/0330 b/test/scripts/0000-Basic/0330 new file mode 100644 index 000000000..41fc4e257 --- /dev/null +++ b/test/scripts/0000-Basic/0330 @@ -0,0 +1,10 @@ +# check_ancestor with case sensitivity +exim -odi userx +Remove: This header should go +**** +exim -odi UserY +Remove: This header should go +**** +exim -odi usery +Remove: This header should go +**** diff --git a/test/scripts/0000-Basic/0331 b/test/scripts/0000-Basic/0331 new file mode 100644 index 000000000..d78af27c5 --- /dev/null +++ b/test/scripts/0000-Basic/0331 @@ -0,0 +1,23 @@ +# more rewriting tests using -brw +exim -brw x@y +**** +exim -brw a@b +**** +exim -brw 2047@x.y +**** +exim -brw unq1@x.y +**** +exim -brw unq2@x.y +**** +exim -brw unq3@x.y +**** +exim -brw 4@x.y +**** +exim -brw fw@fw +**** +exim -brw gw@fw +**** +exim -brw abc@abc +**** +exim -brw ABC@abc +**** diff --git a/test/scripts/0000-Basic/0332 b/test/scripts/0000-Basic/0332 new file mode 100644 index 000000000..41ef06acd --- /dev/null +++ b/test/scripts/0000-Basic/0332 @@ -0,0 +1,36 @@ +# routing delay in message on existing connection (queue run) +need_ipv4 +# +exim -odi -odqs ok@no.delay +Message 1 +**** +exim -odi -odqs delay@test.again.dns ok@no.delay +Message 2 +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Go ahead +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Go ahead +. +250 OK +QUIT +250 OK +**** +exim -q -d-all+route +**** diff --git a/test/scripts/0000-Basic/0333 b/test/scripts/0000-Basic/0333 new file mode 100644 index 000000000..1cb3de2e7 --- /dev/null +++ b/test/scripts/0000-Basic/0333 @@ -0,0 +1,37 @@ +# routing delay in message on existing connection (not queue run) +need_ipv4 +# +exim -odi -odqs ok@no.delay +Message 1 +**** +exim -odi -odqs delay@test.again.dns ok@no.delay +Message 2 +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 PIPELINING +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Go ahead +. +250 OK +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Go ahead +. +250 OK +QUIT +250 OK +**** +exim -d-all+route -M $msg1 +**** +millisleep 100 diff --git a/test/scripts/0000-Basic/0334 b/test/scripts/0000-Basic/0334 new file mode 100644 index 000000000..91a67365e --- /dev/null +++ b/test/scripts/0000-Basic/0334 @@ -0,0 +1,6 @@ +# Detect 0.0.0.0 as local +need_ipv4 +# +1 +exim -bt x@y +**** diff --git a/test/scripts/0000-Basic/0335 b/test/scripts/0000-Basic/0335 new file mode 100644 index 000000000..38564e26a --- /dev/null +++ b/test/scripts/0000-Basic/0335 @@ -0,0 +1,11 @@ +# Envelope-to: and duplicates +exim -odi onelevel1 onelevel2 +**** +exim -odi top1 top2 +**** +exim -odi top1 top2 onelevel1 onelevel2 +**** +exim -odi batch +**** +exim -odi clone clone clone c2 c2 +**** diff --git a/test/scripts/0000-Basic/0336 b/test/scripts/0000-Basic/0336 new file mode 100644 index 000000000..dd5016396 --- /dev/null +++ b/test/scripts/0000-Basic/0336 @@ -0,0 +1,13 @@ +# -N in queued mail +exim -odq -N userx +**** +exim -odq userx +**** +exim -R userx +**** +exim -odq -N userx +**** +exim -odq userx +**** +exim -q +**** diff --git a/test/scripts/0000-Basic/0337 b/test/scripts/0000-Basic/0337 new file mode 100644 index 000000000..65901d2e2 --- /dev/null +++ b/test/scripts/0000-Basic/0337 @@ -0,0 +1,5 @@ +# errors_to verify loop +exim -bv userx +**** +exim -bt userx +**** diff --git a/test/scripts/0000-Basic/0338 b/test/scripts/0000-Basic/0338 new file mode 100644 index 000000000..481a33083 --- /dev/null +++ b/test/scripts/0000-Basic/0338 @@ -0,0 +1,9 @@ +# errors_to and one_time +exim -odi userx +**** +exim -bp +**** +exim -Mvh $msg1 +**** +exim -qf +**** diff --git a/test/scripts/0000-Basic/0339 b/test/scripts/0000-Basic/0339 new file mode 100644 index 000000000..ccf5a269d --- /dev/null +++ b/test/scripts/0000-Basic/0339 @@ -0,0 +1,4 @@ +# Missing command in pipe transport +exim -odi userx@test.ex +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0340 b/test/scripts/0000-Basic/0340 new file mode 100644 index 000000000..a4ee6ad66 --- /dev/null +++ b/test/scripts/0000-Basic/0340 @@ -0,0 +1,6 @@ +# dnslist when no host address +exim -bs +mail from:<userx@test.ex> +rcpt to:<userx@test.again.dns> +quit +**** diff --git a/test/scripts/0000-Basic/0341 b/test/scripts/0000-Basic/0341 new file mode 100644 index 000000000..a323e936b --- /dev/null +++ b/test/scripts/0000-Basic/0341 @@ -0,0 +1,15 @@ +# batching and errors_to (local and remote delivery) +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex usery@test.ex +**** +exim -qf +**** +exim userx@xxx usery@xxx +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/0000-Basic/0342 b/test/scripts/0000-Basic/0342 new file mode 100644 index 000000000..0b4016293 --- /dev/null +++ b/test/scripts/0000-Basic/0342 @@ -0,0 +1,8 @@ +# verification of recipient at non FQDN +need_ipv4 +# +exim -bh 1.2.3.4 +mail from:<x@y> +rcpt to:<x@ten-1> +quit +**** diff --git a/test/scripts/0000-Basic/0343 b/test/scripts/0000-Basic/0343 new file mode 100644 index 000000000..9487b5b97 --- /dev/null +++ b/test/scripts/0000-Basic/0343 @@ -0,0 +1,13 @@ +# Retry after queue and -Mc +need_ipv4 +# +exim -odq x@y +Testing. +**** +exim -Mc $msg1 +**** +dump retry +exim -Mc $msg1 +**** +dump retry +no_msglog_check diff --git a/test/scripts/0000-Basic/0344 b/test/scripts/0000-Basic/0344 new file mode 100644 index 000000000..2f8ca288c --- /dev/null +++ b/test/scripts/0000-Basic/0344 @@ -0,0 +1,5 @@ +# Individual transports in manualroute +need_ipv4 +# +exim -bt x@d1 x@d2 x@d30 x@d31 +**** diff --git a/test/scripts/0000-Basic/0345 b/test/scripts/0000-Basic/0345 new file mode 100644 index 000000000..b9a77e672 --- /dev/null +++ b/test/scripts/0000-Basic/0345 @@ -0,0 +1,17 @@ +# quota_xxx in retry rules +exim -odi a@test.ex +This is a test message which should be over quota. +**** +dump retry +touch -a -t 0205100000 DIR/test-mail/a +ls -lu DIR/test-mail/a +sleep 1 +exim -odi -qf +**** +dump retry +sleep 1 +exim -odi -qf +**** +dump retry +no_message_check +no_msglog_check diff --git a/test/scripts/0000-Basic/0346 b/test/scripts/0000-Basic/0346 new file mode 100644 index 000000000..8e47911af --- /dev/null +++ b/test/scripts/0000-Basic/0346 @@ -0,0 +1,4 @@ +# duplicate loops in address graphs +exim -odi x@dom1 x@dom2 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0347 b/test/scripts/0000-Basic/0347 new file mode 100644 index 000000000..58adb2acf --- /dev/null +++ b/test/scripts/0000-Basic/0347 @@ -0,0 +1,3 @@ +# Different domains, same self_hostname for batch delivery +exim -odi x@dom1 x@dom2 x@dom3 +**** diff --git a/test/scripts/0000-Basic/0348 b/test/scripts/0000-Basic/0348 new file mode 100644 index 000000000..89f390e8d --- /dev/null +++ b/test/scripts/0000-Basic/0348 @@ -0,0 +1,13 @@ +# Invalid time in retry rules +1 +exim -brt a@b +**** +1 +exim -DRETRY=G,1d,20,1.5 -brt a@b +**** +1 +exim -DRETRY=F,1,30m -brt a@b +**** +1 +exim -DRETRY=F,1d,30 -brt a@b +**** diff --git a/test/scripts/0000-Basic/0349 b/test/scripts/0000-Basic/0349 new file mode 100644 index 000000000..1d53d2256 --- /dev/null +++ b/test/scripts/0000-Basic/0349 @@ -0,0 +1,4 @@ +# Non-absolute file name in filter save - transport sets home_directory +exim -odi userx +Testing, testing +**** diff --git a/test/scripts/0000-Basic/0350 b/test/scripts/0000-Basic/0350 new file mode 100644 index 000000000..0b4f7196b --- /dev/null +++ b/test/scripts/0000-Basic/0350 @@ -0,0 +1,4 @@ +# $host_address in ignore_target_hosts +need_ipv4 +# +exim -bt xx@yy diff --git a/test/scripts/0000-Basic/0351 b/test/scripts/0000-Basic/0351 new file mode 100644 index 000000000..739748385 --- /dev/null +++ b/test/scripts/0000-Basic/0351 @@ -0,0 +1,13 @@ +# Header concatenation with addresses +exim -odi userx +To: userx +To: usery +Cc: Him +Cc: Her +Subject: one +Subject: two +Resent-to: a@b, aa@bb +Resent-to: c@d +Reply-to: r@s +Reply-to: t@u +**** diff --git a/test/scripts/0000-Basic/0352 b/test/scripts/0000-Basic/0352 new file mode 100644 index 000000000..45db18520 --- /dev/null +++ b/test/scripts/0000-Basic/0352 @@ -0,0 +1,31 @@ +# Address headers containing spaces only +exim -odi userx +From: +To: + +Testing +**** +exim -odi userx +To: abcd +To: +To: xyz +To: pqr + +Testing 2 +**** +exim -odi userx +To: +To: abcd +To: xyz +To: pqr + +Testing 3 +**** +exim -odi userx +To: abcd +To: xyz +To: pqr +To: + +Testing 4 +**** diff --git a/test/scripts/0000-Basic/0353 b/test/scripts/0000-Basic/0353 new file mode 100644 index 000000000..c95d13a29 --- /dev/null +++ b/test/scripts/0000-Basic/0353 @@ -0,0 +1,5 @@ +# Non-absolute path in system filter (no user set) +exim -odi userx +Testing +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0354 b/test/scripts/0000-Basic/0354 new file mode 100644 index 000000000..a8464b36f --- /dev/null +++ b/test/scripts/0000-Basic/0354 @@ -0,0 +1,5 @@ +# No slash path in system filter (user set) +exim -odi userx +Testing +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0355 b/test/scripts/0000-Basic/0355 new file mode 100644 index 000000000..788bfffe9 --- /dev/null +++ b/test/scripts/0000-Basic/0355 @@ -0,0 +1,5 @@ +# No slash path in user filter +exim -odi userx +Testing +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0356 b/test/scripts/0000-Basic/0356 new file mode 100644 index 000000000..cf6cd6f9c --- /dev/null +++ b/test/scripts/0000-Basic/0356 @@ -0,0 +1,7 @@ +# no_message_logs +exim -odi userx +Testing 1 +**** +exim -DMESSAGE_LOGS=no_message_logs -odi userx +Testing 2 +**** diff --git a/test/scripts/0000-Basic/0357 b/test/scripts/0000-Basic/0357 new file mode 100644 index 000000000..1ca60b12d --- /dev/null +++ b/test/scripts/0000-Basic/0357 @@ -0,0 +1,49 @@ +# retrying address errors +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250 HELP +MAIL +250 OK +RCPT +451 Temporary error +QUIT +250 OK +**** +exim -odi -d-all+retry userx +Testing 1 +**** +dump retry +sleep 1 +server PORT_S +220 ESMTP +EHLO +250 HELP +MAIL +250 OK +RCPT +451 Temporary error +QUIT +250 OK +**** +exim -q -d-all+retry +**** +dump retry +sleep 3 +server PORT_S +220 ESMTP +EHLO +250 HELP +MAIL +250 OK +RCPT +451 Temporary error +QUIT +250 OK +**** +exim -q -d-all+retry +**** +dump retry +no_msglog_check diff --git a/test/scripts/0000-Basic/0358 b/test/scripts/0000-Basic/0358 new file mode 100644 index 000000000..7571c277f --- /dev/null +++ b/test/scripts/0000-Basic/0358 @@ -0,0 +1,39 @@ +# retrying address errors (not first address) +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250 HELP +MAIL +250 OK +RCPT +451 Temporary error +RCPT +451 Temporary error +QUIT +250 OK +**** +exim -odi -d-all+retry userx usery +Testing 1 +**** +dump retry +sleep 4 +server PORT_S +220 ESMTP +EHLO +250 HELP +MAIL +250 OK +RCPT +451 Temporary error +RCPT +451 Temporary error +QUIT +250 OK +**** +exim -q -d-all+retry +Testing 1 +**** +dump retry +no_msglog_check diff --git a/test/scripts/0000-Basic/0359 b/test/scripts/0000-Basic/0359 new file mode 100644 index 000000000..682d4301f --- /dev/null +++ b/test/scripts/0000-Basic/0359 @@ -0,0 +1,7 @@ +# shadow_transport_condition and $local_part +exim -odi userx +. +**** +exim -odi usery +. +**** diff --git a/test/scripts/0000-Basic/0360 b/test/scripts/0000-Basic/0360 new file mode 100644 index 000000000..449e7ed42 --- /dev/null +++ b/test/scripts/0000-Basic/0360 @@ -0,0 +1,11 @@ +# widened domains +need_ipv4 +# +exim -d-all+route -N -odi cms +. +**** +exim -bpa +**** +exim -qf -d-all+route +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0361 b/test/scripts/0000-Basic/0361 new file mode 100644 index 000000000..fa684acb2 --- /dev/null +++ b/test/scripts/0000-Basic/0361 @@ -0,0 +1,7 @@ +# widened domains and duplication +need_ipv4 +# +exim -odi -N miles@thishost.test.ex +**** +exim -odi -d -N kilos@recurse.test.ex +**** diff --git a/test/scripts/0000-Basic/0362 b/test/scripts/0000-Basic/0362 new file mode 100644 index 000000000..60d5155e3 --- /dev/null +++ b/test/scripts/0000-Basic/0362 @@ -0,0 +1,8 @@ +# cached named lists after rewriting for verification +need_ipv4 +# +exim -d -bh V4NET.0.0.0 +mail from:<x@y> +rcpt to:<x@a.b.c> +quit +**** diff --git a/test/scripts/0000-Basic/0363 b/test/scripts/0000-Basic/0363 new file mode 100644 index 000000000..d6b2e1601 --- /dev/null +++ b/test/scripts/0000-Basic/0363 @@ -0,0 +1,21 @@ +# percent hack and rcpt addresses +need_ipv4 +# +server PORT_S +220 +EHLO +220 OK +MAIL +250 OK +RCPT +250 OK +DATA +334 send more +. +250 OK +QUIT +250 OK +**** +exim -odi Aa%Bb@Cc +To: aa%bb@cc +**** diff --git a/test/scripts/0000-Basic/0364 b/test/scripts/0000-Basic/0364 new file mode 100644 index 000000000..821caddba --- /dev/null +++ b/test/scripts/0000-Basic/0364 @@ -0,0 +1,6 @@ +# widening by steam +need_ipv4 +# +2 +exim -d-all+route -bt kilos@thishost solik@otherhost xxx@ten-1 xxx@testsub +**** diff --git a/test/scripts/0000-Basic/0365 b/test/scripts/0000-Basic/0365 new file mode 100644 index 000000000..0697f1e0d --- /dev/null +++ b/test/scripts/0000-Basic/0365 @@ -0,0 +1,73 @@ +# SMTP error details and rejected_header log selector +need_ipv4 +# +exim -bs +mail from:<> +rcpt to:<x@y> +data +From: <bad@syntax +. +mail from:<> +rcpt to:<x@y> +data +From: bad@domain +. +mail from:<callout@x> +rcpt to:<x@y> +rset +mail from:<nosyntax@x> +rcpt to:<x@y> +data +From: <bad@syntax +. +mail from:<> +rcpt to:<x@y> +data +From: <unverifiable@y> +. +mail from:<recipcallout@y> +rcpt to:<callout@y> +rset +mail from:<> +rcpt to:<cantverify.fail@y> +rset +mail from:<> +rcpt to:<cantverify.defer@y> +rset +quit +**** +exim -DDETAILS=true -DSELECTOR=-rejected_header -bs +mail from:<> +rcpt to:<x@y> +data +From: <bad@syntax +. +mail from:<> +rcpt to:<x@y> +data +From: bad@domain +. +mail from:<callout@x> +rcpt to:<x@y> +rset +mail from:<nosyntax@x> +rcpt to:<x@y> +data +From: <bad@syntax +. +mail from:<> +rcpt to:<x@y> +data +From: <unverifiable@y> +. +mail from:<recipcallout@y> +rcpt to:<callout@y> +rset +mail from:<> +rcpt to:<cantverify.fail@y> +rset +rset +mail from:<> +rcpt to:<cantverify.defer@y> +quit +**** diff --git a/test/scripts/0000-Basic/0366 b/test/scripts/0000-Basic/0366 new file mode 100644 index 000000000..36f87e759 --- /dev/null +++ b/test/scripts/0000-Basic/0366 @@ -0,0 +1,14 @@ +# hosts_max_try +need_ipv4 +# +exim -brt userx@mxt99.text.ex ten-1.test.ex +**** +exim -odi userx@mxt99.test.ex +**** +sleep 3 +exim -q +**** +sleep 1 +exim -q +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0367 b/test/scripts/0000-Basic/0367 new file mode 100644 index 000000000..0c03b391b --- /dev/null +++ b/test/scripts/0000-Basic/0367 @@ -0,0 +1,58 @@ +# Multiple messages down one SMTP connection +need_ipv4 +# +exim -odq userx@domain1 +Test message 1 +**** +exim -odq userx@domain1 +Test message 2 +**** +exim -odq userx@domain1 +Test message 3 +**** +exim -odq userx@domain1 +Test message 4 +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +MAIL +250 OK +RCPT +250 OK +DATA +354 More... +. +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 More... +. +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 More... +. +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 More... +. +250 OK +QUIT +220 OK +**** +exim -qqf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0368 b/test/scripts/0000-Basic/0368 new file mode 100644 index 000000000..1cce863bc --- /dev/null +++ b/test/scripts/0000-Basic/0368 @@ -0,0 +1,5 @@ +# removal of duplicate IP addresses +need_ipv4 +# +exim -d-all+host_lookup -bt x@mxt9.test.ex x@mxt14.test.ex x@manualroute +**** diff --git a/test/scripts/0000-Basic/0369 b/test/scripts/0000-Basic/0369 new file mode 100644 index 000000000..bffb727ce --- /dev/null +++ b/test/scripts/0000-Basic/0369 @@ -0,0 +1,6 @@ +# temp_errors in pipe transport +exim -odi 0@test.ex 10@test.ex 45@test.ex +**** +exim -odi 0@test2.ex 10@test2.ex 45@test2.ex +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0370 b/test/scripts/0000-Basic/0370 new file mode 100644 index 000000000..a58563c67 --- /dev/null +++ b/test/scripts/0000-Basic/0370 @@ -0,0 +1,3 @@ +# gid (only) set in router for pipe transport +exim -d-all+transport+uid -odi userx@test.ex +**** diff --git a/test/scripts/0000-Basic/0371 b/test/scripts/0000-Basic/0371 new file mode 100644 index 000000000..2850fc12f --- /dev/null +++ b/test/scripts/0000-Basic/0371 @@ -0,0 +1,12 @@ +# acl variables +exim -d -bh V4NET.0.0.0 +ehlo something +mail from:<x@y> +rcpt to:<x@y> +data +. +vrfy x@y +mail from:<x@y> +quit +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0372 b/test/scripts/0000-Basic/0372 new file mode 100644 index 000000000..4e670167e --- /dev/null +++ b/test/scripts/0000-Basic/0372 @@ -0,0 +1,12 @@ +# Preservation of ACL variables +exim -v -odi -bs -oMa 1.2.3.4 -oMs host.name +mail from:<> +rcpt to:<x@y> +data +. +mail from:<> +rcpt to:<a@b> +data +. +quit +**** diff --git a/test/scripts/0000-Basic/0373 b/test/scripts/0000-Basic/0373 new file mode 100644 index 000000000..a20e79ecd --- /dev/null +++ b/test/scripts/0000-Basic/0373 @@ -0,0 +1,57 @@ +# ${readsocket +need_ipv4 +# +exim -be +1 >>${readsocket{DIR/test-socket}{QUERY-1\n}}<< +2 ${if exists{DIR/test-socket}\ + {>>${readsocket{DIR/test-socket}{QUERY-1\n}}<<}\ + {++ no socket ++}} +**** +# +# Note the difference between: +# >*eof => close the connection +# *eof => expect to read EOF from client +# +server DIR/test-socket 9 +QUERY-1 +>LF>ANSWER-1 +>*eof +QUERY-2 +>>ANSWER-2 +>*eof +QUERY-3 +>LF>ANSWER-3 +>*eof +QUERY-4 +>LF>ANSWER-4 +>*eof +>>ANSWER-5 +>*eof +*sleep 1 +>*eof +>*eof +QUERY-8 +*sleep 2 +*eof +QUERY-9 +*sleep 2 +**** +millisleep 500 +exim -be +1 >>${readsocket{DIR/test-socket}{QUERY-1\n}}<< +2 >>${readsocket{DIR/test-socket}{QUERY-2\n}}<< +3 >>${readsocket{DIR/test-socket}{QUERY-3\n}{2s}{*EOL*}}<< +4 >>${readsocket{DIR/test-socket}{QUERY-4\n}{2s}{*EOL*}{sock error}}<< +5 >>${readsocket{DIR/test-socket}{}}<< +6 >>${readsocket{DIR/test-socket}{QUERY-6\n}}<< +7 >>${readsocket{DIR/test-socket}{QUERY-7\n}{1s}{}{sock error}}<< +8 >>${readsocket{DIR/test-socket}{QUERY-8\n}{1s}}<< +9 >>${readsocket{DIR/test-socket}{QUERY-9\n}{1s}{}{sock error}}<< +**** +server DIR/test-socket +QUERY-ACL +*sleep 3 +**** +exim -odq -bs -oMa V4NET.0.0.0 +quit +**** diff --git a/test/scripts/0000-Basic/0374 b/test/scripts/0000-Basic/0374 new file mode 100644 index 000000000..2bde68338 --- /dev/null +++ b/test/scripts/0000-Basic/0374 @@ -0,0 +1,43 @@ +# unseen without disable_logging and errors_to = "" +need_ipv4 +# +server PORT_S 3 +220 +EHLO +220 OK +MAIL +250 OK +RCPT +250 OK +DATA +334 send more +. +250 OK +QUIT +250 OK +*eof +220 +EHLO +220 OK +MAIL +250 OK +RCPT +450 soft error +QUIT +250 OK +*eof +220 +EHLO +220 OK +MAIL +250 OK +RCPT +550 hard error +QUIT +250 OK +**** +exim -d-all+route -odi a1 b1 c1 d1 d2 d3 +**** +exim -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0375 b/test/scripts/0000-Basic/0375 new file mode 100644 index 000000000..8d2608fb8 --- /dev/null +++ b/test/scripts/0000-Basic/0375 @@ -0,0 +1,89 @@ +# unseen with disable_logging and errors_to = "" or forced fail +need_ipv4 +# +server -t 10 PORT_S 7 +220 +EHLO +220 OK +MAIL +250 OK +RCPT +250 OK +DATA +334 send more +. +250 OK +QUIT +250 OK +*eof +220 +EHLO +220 OK +MAIL +250 OK +RCPT +450 soft error +QUIT +250 OK +*eof +220 +EHLO +220 OK +MAIL +250 OK +RCPT +550 hard error +QUIT +250 OK +*eof +220 +EHLO +220 OK +MAIL +250 OK +RCPT +550 hard error +QUIT +250 OK +*eof +220 +EHLO +220 OK +MAIL +250 OK +RCPT +250 OK +DATA +334 send more +. +250 OK +QUIT +250 OK +*eof +220 +EHLO +220 OK +MAIL +250 OK +RCPT +450 soft error +QUIT +250 OK +*eof +220 +EHLO +220 OK +MAIL +250 OK +RCPT +550 hard error +QUIT +250 OK +**** +exim -d-all+route -odi a1 b1 c1 d1 d2 d3 e1 f1 f2 f3 g1 +**** +exim -qf +**** +exim -d-all+route -odi h1 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0376 b/test/scripts/0000-Basic/0376 new file mode 100644 index 000000000..7430a6bce --- /dev/null +++ b/test/scripts/0000-Basic/0376 @@ -0,0 +1,442 @@ +# callout verification (with caching) +need_ipv4 +# +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<ok@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<ok@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +# Wait for the record to time out and try again +sleep 2 +# Should want to connect, but fail +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<ok@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +# Test unsuccessful caching +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 REJECTED +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<bad@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<bad@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +# Test caching of rejection of MAIL FROM:<> +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +550 REJECT MAIL FROM +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<ok@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<ok@localhost> +RCPT TO:<z@test.ex> +QUIT +**** +# Test caching of rejection of postmaster +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +550 NOT OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2 +MAIL FROM:<ok@otherhost> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2 +MAIL FROM:<ok@otherhost> +RCPT TO:<z@test.ex> +QUIT +**** +# Test caching of accepting of postmaster +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2 +MAIL FROM:<ok@otherhost2> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2 +MAIL FROM:<ok@otherhost2> +RCPT TO:<z@test.ex> +QUIT +**** +# Test caching of accepting a random address +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<ok@otherhost3> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<otherok@otherhost3> +RCPT TO:<z@test.ex> +QUIT +**** +# Test caching of accepting a random address and postmaster +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.4 +MAIL FROM:<ok@otherhost4> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.4 +MAIL FROM:<ok@otherhost4> +RCPT TO:<z@test.ex> +QUIT +**** +# Test caching of rejecting a random address and postmaster +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 NOT OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.4 +MAIL FROM:<ok@otherhost41> +RCPT TO:<z@test.ex> +QUIT +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.4 +MAIL FROM:<ok@otherhost41> +RCPT TO:<z@test.ex> +QUIT +**** +# Test caching of accepting of postmaster when another +# address has to be tested +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2 +MAIL FROM:<ok@otherhost21> +RCPT TO:<z@test.ex> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2 +MAIL FROM:<ok2@otherhost21> +RCPT TO:<z@test.ex> +QUIT +**** +# Test caching of rejecting a random address +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 NOT OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<ok@otherhost31> +RCPT TO:<z@test.ex> +QUIT +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<okok@otherhost31> +RCPT TO:<z@test.ex> +QUIT +**** +# Wait a bit for the record to expire and then try again +sleep 2 +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 NOT OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -DPEX=1s -d-all+verify -v -bs -oMa V4NET.0.0.3 +MAIL FROM:<okokok@otherhost31> +RCPT TO:<z@test.ex> +QUIT +**** +# Timeout on the RCPT for random +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +*sleep 2 +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.5 +MAIL FROM:<okok@otherhost51> +RCPT TO:<z@test.ex> +QUIT +**** +# Postmaster_sender set non-empty +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.6 +MAIL FROM:<okokok@otherhost52> +RCPT TO:<z@test.ex> +QUIT +**** +# Header_sender sender set non-empty +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -odq -v -bs -oMa V4NET.0.0.7 +MAIL FROM:<ok7@otherhost53> +RCPT TO:<z@test.ex> +DATA +Reply-To: abcd@x.y.z +. +QUIT +**** +# Timeout on RCPT for header_sender (defer_ok test) +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +*sleep 2 +**** +sudo exim -d-all+verify -odq -v -bs -oMa V4NET.0.0.8 +MAIL FROM:<ok7@otherhost53> +RCPT TO:<z@test.ex> +DATA +Reply-To: abcd@x.y.z +. +QUIT +**** +# Test full postmaster check +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +550 NOT OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.9 +MAIL FROM:<ok@otherhost9> +RCPT TO:<z@test.ex> +QUIT +**** +# Test postmaster_mailfrom with random +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 RANDOM IS BAD +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.10 +MAIL FROM:<ok@otherhost10> +RCPT TO:<z@test.ex> +QUIT +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0377 b/test/scripts/0000-Basic/0377 new file mode 100644 index 000000000..97b03f59d --- /dev/null +++ b/test/scripts/0000-Basic/0377 @@ -0,0 +1,10 @@ +# unseen and other redirecting routers that aren't always triggered +exim -d-all+route -odi aaaa bbbb cccc +**** +exim -Mvh $msg1 +**** +exim -d-all+route -qf +**** +exim -d-all+route -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0378 b/test/scripts/0000-Basic/0378 new file mode 100644 index 000000000..46a032514 --- /dev/null +++ b/test/scripts/0000-Basic/0378 @@ -0,0 +1,8 @@ +# pipe/file/reply check recorded delivery +exim -d-all+route -odi aaaa +**** +exim -Mvh $msg1 +**** +exim -d-all+route -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0379 b/test/scripts/0000-Basic/0379 new file mode 100644 index 000000000..1928e377b --- /dev/null +++ b/test/scripts/0000-Basic/0379 @@ -0,0 +1,8 @@ +# non-homonym redirection - marking done +exim -d-all+route -odi defer aaaa +**** +exim -Mvh $msg1 +**** +exim -d-all+route -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0380 b/test/scripts/0000-Basic/0380 new file mode 100644 index 000000000..10e93b9cd --- /dev/null +++ b/test/scripts/0000-Basic/0380 @@ -0,0 +1,4 @@ +# ignore_enotdir +exim -d-all+route -odi aaaa bbbb +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0381 b/test/scripts/0000-Basic/0381 new file mode 100644 index 000000000..c5f7d8441 --- /dev/null +++ b/test/scripts/0000-Basic/0381 @@ -0,0 +1,6 @@ +# negatives with wildcard hosts when host has multiple names +exim -d -bs -oMa V4NET.99.99.97 +mail from:<notgov@test.ex> +rcpt to:<x@test.ex> +quit +**** diff --git a/test/scripts/0000-Basic/0382 b/test/scripts/0000-Basic/0382 new file mode 100644 index 000000000..3eadb403d --- /dev/null +++ b/test/scripts/0000-Basic/0382 @@ -0,0 +1,7 @@ +# timeout_frozen_after and system filter +exim -d-all+filter -odi userx +**** +sleep 1 +exim -d-all+filter -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0383 b/test/scripts/0000-Basic/0383 new file mode 100644 index 000000000..ab2f44808 --- /dev/null +++ b/test/scripts/0000-Basic/0383 @@ -0,0 +1,11 @@ +# $thisaddress passed to a pipe +exim -odi alice +To: alice@test.ex +**** +exim -odi jabberwocky +To: jabberwocky@test.ex +**** +exim -odi redking +To: redking@test.ex +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0384 b/test/scripts/0000-Basic/0384 new file mode 100644 index 000000000..f95a2076a --- /dev/null +++ b/test/scripts/0000-Basic/0384 @@ -0,0 +1,8 @@ +# preserve state on 2nd EHLO +exim -bh V4NET.9.8.7 +EHLO [V4NET.9.8.7] +MAIL FROM:<x@y> +EHLO [1.2.3.4] +RCPT TO:<a@b> +QUIT +**** diff --git a/test/scripts/0000-Basic/0385 b/test/scripts/0000-Basic/0385 new file mode 100644 index 000000000..402a8915a --- /dev/null +++ b/test/scripts/0000-Basic/0385 @@ -0,0 +1,55 @@ +# return_size_limit was losing data +exim -odi userx +Subject: body size = 2 + +X +**** +exim -odi userx +Subject: body size = 200 + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +**** +exim -odi userx +Subject: body size = 1600 + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +**** +write test-data 200x50 +++++ +**** +exim -odi userx <test-data +**** diff --git a/test/scripts/0000-Basic/0386 b/test/scripts/0000-Basic/0386 new file mode 100644 index 000000000..172c8b79a --- /dev/null +++ b/test/scripts/0000-Basic/0386 @@ -0,0 +1,23 @@ +# ACLs and multiple messages +exim -d -bh V4NET.9.8.7 +mail from:<x@y> +rcpt to:<1@b> +rset +mail from:<x@y> +rcpt to:<1@b> +quit +**** +exim -d -odi -bs -oMa V4NET.11.12.13 userx +mail from:<x@y> +rcpt to:<2@b> +data +Message 1 +. +rset +mail from:<x@y> +rcpt to:<2@b> +data +Message 2 +. +quit +**** diff --git a/test/scripts/0000-Basic/0387 b/test/scripts/0000-Basic/0387 new file mode 100644 index 000000000..155ad0235 --- /dev/null +++ b/test/scripts/0000-Basic/0387 @@ -0,0 +1,42 @@ +# Partial matching and lookup name decoding +exim -bs +mail from:<x@a.b.c> +rcpt to:<x@y> +rset +mail from:<x@b.c.a> +rcpt to:<x@y> +quit +**** +exim -bs -oMa 10.9.8.7 +mail from:<x@b.c.a> +rcpt to:<x@y> +quit +**** +exim -bs -oMa 192.168.4.5 +mail from:<x@b.c.a> +rcpt to:<x@y> +quit +**** +exim -bs -oMa 1.2.3.4 +mail from:<x@b.c.a> +rcpt to:<x@y> +quit +**** +exim -d-all+lookup -be + 1 ${lookup{a.b.c}partial-lsearch{DIR/aux-fixed/TESTNUM.1}} + 2 ${lookup{x.y.c}partial-lsearch{DIR/aux-fixed/TESTNUM.1}} + 3 ${lookup{x.y.c}partial-lsearch*{DIR/aux-fixed/TESTNUM.1}} + 4 ${lookup{x.y.c}partial1-lsearch{DIR/aux-fixed/TESTNUM.1}} + 5 ${lookup{x@y.c}partial1-lsearch*@{DIR/aux-fixed/TESTNUM.1}} + 6 ${lookup{x@y.c}lsearch*@{DIR/aux-fixed/TESTNUM.1}} + 7 ${lookup{a.b.c}partial(*.)lsearch{DIR/aux-fixed/TESTNUM.1}} + 8 ${lookup{a.b.c}partial(.)lsearch{DIR/aux-fixed/TESTNUM.1}} + 9 ${lookup{a.b.c}partial()lsearch{DIR/aux-fixed/TESTNUM.1}} +10 ${lookup{a.b.c}partial(*)lsearch{DIR/aux-fixed/TESTNUM.1}} +11 ${lookup{p.q.r}partial0(*.)lsearch{DIR/aux-fixed/TESTNUM.1}} +12 ${lookup{p.q.r}partial0(.)lsearch{DIR/aux-fixed/TESTNUM.1}} +13 ${lookup{x.aa.bb}partial0(++)lsearch{DIR/aux-fixed/TESTNUM.1}} +14 ${lookup{x.aa.zz}partial0(++)lsearch{DIR/aux-fixed/TESTNUM.1}} +15 ${lookup{x.aa.zz}partial1(++)lsearch*{DIR/aux-fixed/TESTNUM.1}} +16 ${lookup{a.b.c}partial-lsearch{DIR/aux-fixed/TESTNUM.1}{$value|$0|$1|$2}} +**** diff --git a/test/scripts/0000-Basic/0388 b/test/scripts/0000-Basic/0388 new file mode 100644 index 000000000..ec2d798fd --- /dev/null +++ b/test/scripts/0000-Basic/0388 @@ -0,0 +1,19 @@ +# Recipient errors and hosts_max_try +need_ipv4 +# +exim -odq x@y +**** +sleep 2 +server PORT_S +220 Server ready +EHLO +250 OK +MAIL FROM +250 OK +RCPT TO +451 Temporary error +QUIT +250 OK +**** +exim -odi -d-deliver-transport -M $msg1 +**** diff --git a/test/scripts/0000-Basic/0389 b/test/scripts/0000-Basic/0389 new file mode 100644 index 000000000..d23af20c3 --- /dev/null +++ b/test/scripts/0000-Basic/0389 @@ -0,0 +1,11 @@ +# warn with log_message but no message +exim -bs +mail from:x@y +rcpt to:x@y +data +. +quit +**** +exim -Mvh $msg1 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0390 b/test/scripts/0000-Basic/0390 new file mode 100644 index 000000000..cbd8c0ddf --- /dev/null +++ b/test/scripts/0000-Basic/0390 @@ -0,0 +1,12 @@ +# .ifdef etc +exim -bP accept_8bitmime acl_not_smtp acl_smtp_auth acl_smtp_connect acl_smtp_data acl_smtp_etrn acl_smtp_expn acl_smtp_mail acl_smtp_rcpt acl_smtp_vrfy +**** +exim -DAA -bP accept_8bitmime acl_not_smtp acl_smtp_auth acl_smtp_connect acl_smtp_data acl_smtp_etrn acl_smtp_expn acl_smtp_mail acl_smtp_rcpt acl_smtp_vrfy +**** +exim -DBB -bP accept_8bitmime acl_not_smtp acl_smtp_auth acl_smtp_connect acl_smtp_data acl_smtp_etrn acl_smtp_expn acl_smtp_mail acl_smtp_rcpt acl_smtp_vrfy +**** +exim -DAA -DBB -bP accept_8bitmime acl_not_smtp acl_smtp_auth acl_smtp_connect acl_smtp_data acl_smtp_etrn acl_smtp_expn acl_smtp_mail acl_smtp_rcpt acl_smtp_vrfy +**** +exim -bP transport t1 +**** +exim -DAA -bP transport t1 diff --git a/test/scripts/0000-Basic/0391 b/test/scripts/0000-Basic/0391 new file mode 100644 index 000000000..bbb0fb577 --- /dev/null +++ b/test/scripts/0000-Basic/0391 @@ -0,0 +1,6 @@ +# Sender verify rewrite and $sender_address +exim -d -bh 1.2.3.4 +mail from:<U@W.x.y> +rcpt to:<B@a.b.c> +quit +**** diff --git a/test/scripts/0000-Basic/0392 b/test/scripts/0000-Basic/0392 new file mode 100644 index 000000000..e1a9fec59 --- /dev/null +++ b/test/scripts/0000-Basic/0392 @@ -0,0 +1,7 @@ +# -bt and no_address_test +need_ipv4 +# +exim -bt x@y +**** +exim -v -bv x@y +**** diff --git a/test/scripts/0000-Basic/0393 b/test/scripts/0000-Basic/0393 new file mode 100644 index 000000000..89a1b6a98 --- /dev/null +++ b/test/scripts/0000-Basic/0393 @@ -0,0 +1,7 @@ +# empty transport filter +exim -d-all+transport -odi userx +Testing with filter +**** +exim -DFILTER= -d-all+transport -odi userx +Testing without filter +**** diff --git a/test/scripts/0000-Basic/0394 b/test/scripts/0000-Basic/0394 new file mode 100644 index 000000000..f43f906a4 --- /dev/null +++ b/test/scripts/0000-Basic/0394 @@ -0,0 +1,11 @@ +# null reverse lookup result; errors for verify items with no options +exim -DOPT=reverse_host_lookup -bh V4NET.255.255.255 +**** +exim -DOPT=reverse_host_lookup/defer_ok -bh V4NET.255.255.255 +**** +exim -DOPT=certificate/defer_ok -bh V4NET.255.255.255 +**** +exim -DOPT=helo/defer_ok -bh V4NET.255.255.255 +**** +exim -DOPT=header_syntax/defer_ok -bh V4NET.255.255.255 +**** diff --git a/test/scripts/0000-Basic/0395 b/test/scripts/0000-Basic/0395 new file mode 100644 index 000000000..01afebdf4 --- /dev/null +++ b/test/scripts/0000-Basic/0395 @@ -0,0 +1,88 @@ +# -bnq and address qualification in local messages +1 +exim -odi -bnq userx +From: userx +To: userx +**** +exim -odi -bnq userx@origin.ex +From: philip +To: userx +**** +exim -odi -bnq userx@origin.ex +From: userx@origin.ex +To: userx@test.ex +**** +exim -odi userx +From: userx +To: userx +**** +exim -DTRUSTED=CALLER -odi -bnq userx@origin.ex +From: philip +To: userx +**** +# Same tests for BSMTP +2 +exim -odi -bnq -bS +mail from: userx +rcpt to: userx +data +From: userx +To: userx +. +quit +**** +2 +exim -odi -bnq -bS +mail from: userx@origin.ex +rcpt to: userx +data +From: userx +To: userx +. +quit +**** +exim -odi -bnq -bS +mail from: userx@origin.ex +rcpt to: userx@test.ex +data +From: userx +To: userx +. +quit +**** +exim -odi -bS +mail from: userx@origin.ex +rcpt to: userx@test.ex +data +From: userx +To: userx +. +quit +**** +exim -odi -bnq -bs +mail from: userx@origin.ex +rcpt to: userx +data +From: userx +To: userx +. +quit +**** +exim -odi -bnq -bs +mail from: userx@origin.ex +rcpt to: userx@test.ex +data +From: userx +To: userx +. +quit +**** +exim -odi -bs +mail from: userx@origin.ex +rcpt to: userx@test.ex +data +From: userx +To: userx +. +quit +**** diff --git a/test/scripts/0000-Basic/0396 b/test/scripts/0000-Basic/0396 new file mode 100644 index 000000000..356021a24 --- /dev/null +++ b/test/scripts/0000-Basic/0396 @@ -0,0 +1,6 @@ +# forced failure in named list +exim -d -bs +mail from:<x@y> +rcpt to:<x@y> +quit +**** diff --git a/test/scripts/0000-Basic/0397 b/test/scripts/0000-Basic/0397 new file mode 100644 index 000000000..46a5a07b0 --- /dev/null +++ b/test/scripts/0000-Basic/0397 @@ -0,0 +1,4 @@ +# failure to open main and panic logs +1 +exim -q +**** diff --git a/test/scripts/0000-Basic/0398 b/test/scripts/0000-Basic/0398 new file mode 100644 index 000000000..c98016a69 --- /dev/null +++ b/test/scripts/0000-Basic/0398 @@ -0,0 +1,61 @@ +# acl warning with verify callout failure +need_ipv4 +# +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Unknown +QUIT +250 OK +**** +exim -odi -bs +mail from:<x@remote> +rcpt to:<x@local> +data +Testing +. +quit +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Unknown +QUIT +250 OK +**** +exim -odi -bs +mail from:<z@remote> +rcpt to:<deny@local> +quit +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Unknown +QUIT +250 OK +**** +exim -d -odi -bs +mail from:<qq@remote> +rcpt to:<abc@local> +rcpt to:<xyz@local> +quit +**** +exim -odi -bs +mail from:<> +rcpt to:<abc@local> +rcpt to:<xyz@local> +quit +**** diff --git a/test/scripts/0000-Basic/0399 b/test/scripts/0000-Basic/0399 new file mode 100644 index 000000000..534fab21f --- /dev/null +++ b/test/scripts/0000-Basic/0399 @@ -0,0 +1,4 @@ +# expanding "more" +1 +exim -d -bt x@y +**** diff --git a/test/scripts/0000-Basic/0400 b/test/scripts/0000-Basic/0400 new file mode 100644 index 000000000..219dcc236 --- /dev/null +++ b/test/scripts/0000-Basic/0400 @@ -0,0 +1,9 @@ +# backslash in redirection +exim -DDATA=abcd -bt t1@d1 +**** +exim -DDATA=\\\\abcd -bt t1@d1 +**** +exim -DDATA=\\\\abcd@test.ex -bt t1@d1 +**** +exim -bt alias1@d2 alias2@d2 +**** diff --git a/test/scripts/0000-Basic/0401 b/test/scripts/0000-Basic/0401 new file mode 100644 index 000000000..4c6e49177 --- /dev/null +++ b/test/scripts/0000-Basic/0401 @@ -0,0 +1,9 @@ +# host lookup error from embedded file +exim -bh V4NET.9.8.7 +helo xxx +mail from:<x@y> +quit +**** +exim -bh V4NET.9.9.9 +quit +**** diff --git a/test/scripts/0000-Basic/0402 b/test/scripts/0000-Basic/0402 new file mode 100644 index 000000000..a73872dc2 --- /dev/null +++ b/test/scripts/0000-Basic/0402 @@ -0,0 +1,4 @@ +# expansion of router_home_directory +exim -odi -d+expand CALLER@test.ex usery@test.ex userz rd+CALLER rd+usery +**** +no_message_check diff --git a/test/scripts/0000-Basic/0403 b/test/scripts/0000-Basic/0403 new file mode 100644 index 000000000..b6b3b6d47 --- /dev/null +++ b/test/scripts/0000-Basic/0403 @@ -0,0 +1,4 @@ +# domain_data and local_part_data for redirection to file +exim -N -odi -d userx@test.ex +**** +no_message_check diff --git a/test/scripts/0000-Basic/0404 b/test/scripts/0000-Basic/0404 new file mode 100644 index 000000000..318d151f7 --- /dev/null +++ b/test/scripts/0000-Basic/0404 @@ -0,0 +1,155 @@ +# filter "mail" with huge reply-to header line +exim -d -odi userx +Reply-to: sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex, + sender@test.ex, sender@test.ex, sender@test.ex, sender@test.ex +**** diff --git a/test/scripts/0000-Basic/0405 b/test/scripts/0000-Basic/0405 new file mode 100644 index 000000000..ae96c894c --- /dev/null +++ b/test/scripts/0000-Basic/0405 @@ -0,0 +1,8 @@ +# allow_utf8_domains +need_ipv4 +# +2 +exim -bt bounce@Ï€.test.ex +**** +exim -DUTF8=allow_utf8_domains -bt bounce@Ï€.test.ex +**** diff --git a/test/scripts/0000-Basic/0406 b/test/scripts/0000-Basic/0406 new file mode 100644 index 000000000..216d88241 --- /dev/null +++ b/test/scripts/0000-Basic/0406 @@ -0,0 +1,28 @@ +# $h_ $bh_ and $rh_ expansions +exim -bf DIR/aux-fixed/TESTNUM.f +subject: lots of leading and trailing space +To: a@b +To: c@d +X-1: (=?ISO-8859-1?Q?a?=) +X-2: (=?ISO-8859-1?Q?a?= b) +X-3: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=) +X-4: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=) +X-5: (=?ISO-8859-1?Q?a?= + =?ISO-8859-1?Q?b?=) +X-6: (=?ISO-8859-1?Q?a_b?=) +X-7: (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=) +X-8: (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=) +X-9: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <xxx> +X-10: =?US-ASCII?Q?Keith_Moore?= <xxx> +X-11: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <xxx> +X-12: =?ISO-8859-1?Q?Andr=E9?= Pirard <xxx> +X-13: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= + =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?= +X-14: =?ISO-8859-1?Q?X=00Y?= +X-15: =?iso-8859-3?Q?=?= =?US-ASCII?Q?ABCD?= Text +X-16: =?iso-8859-3?B?+2?= =?UTF-8?Q?ABCD?= Text +X-17: =?UTF-8?Q?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?= +X-18: =?UTF-8?Q?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?= +X-19: =?iso-8859-3?B?=?= =?UTF-8?Q?ABCD?= Text +X-20: =?iso-8859-1?Q?a?= =?ISO-8859-1?Q?x y?= bad because of space +**** diff --git a/test/scripts/0000-Basic/0407 b/test/scripts/0000-Basic/0407 new file mode 100644 index 000000000..0d8e7ca37 --- /dev/null +++ b/test/scripts/0000-Basic/0407 @@ -0,0 +1,25 @@ +# overlong headers and header lines +write test-data 15000x100=__ +From: x@y +Subject: this will be very long +++++ + +Short message body. +**** +1 +exim x@y <DIR/test-data +**** +exim -DHEADER_MAXSIZE=header_maxsize=2M x@y <DIR/test-data +**** +1 +exim -DHEADER_MAXSIZE=header_maxsize=2M -DHEADER_LINE_MAXSIZE=header_line_maxsize=1024 x@y <DIR/test-data +**** +exim -DHEADER_LINE_MAXSIZE=header_line_maxsize=20 -bs +mail from:<x@y> +rcpt to:<x@y> +data +Subject: Here is a line that is going to overflow the small limit +. +quit +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0408 b/test/scripts/0000-Basic/0408 new file mode 100644 index 000000000..ddcec0a79 --- /dev/null +++ b/test/scripts/0000-Basic/0408 @@ -0,0 +1,3 @@ +# errors_to for local delivery +exim -odi -d userx@test.ex +**** diff --git a/test/scripts/0000-Basic/0409 b/test/scripts/0000-Basic/0409 new file mode 100644 index 000000000..f1b3dd0f0 --- /dev/null +++ b/test/scripts/0000-Basic/0409 @@ -0,0 +1,7 @@ +# smtp_banner tests (including empty banner) +exim -bs +quit +**** +exim '-DBANNER=$qualify_domain XYZ' -bs +quit +**** diff --git a/test/scripts/0000-Basic/0410 b/test/scripts/0000-Basic/0410 new file mode 100644 index 000000000..512484574 --- /dev/null +++ b/test/scripts/0000-Basic/0410 @@ -0,0 +1,7 @@ +# address_data in ACLs after verification +exim -bs +MAIL FROM:<oksender@y> +rcpt to:<child@test.ex> +rcpt to:<orig@test.ex> +quit +**** diff --git a/test/scripts/0000-Basic/0411 b/test/scripts/0000-Basic/0411 new file mode 100644 index 000000000..7bd1ff9d4 --- /dev/null +++ b/test/scripts/0000-Basic/0411 @@ -0,0 +1,10 @@ +# use of file= in appendfile with filter setting the folder +exim -odi t1 +**** +# Batched multiple deliveries (it doesn't batch) +exim -odi t11 t12 +**** +# Error message for failure before full path is set +exim -odi t2 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0412 b/test/scripts/0000-Basic/0412 new file mode 100644 index 000000000..7fe5f5876 --- /dev/null +++ b/test/scripts/0000-Basic/0412 @@ -0,0 +1,23 @@ +# $reply_address +exim -odi CALLER +From: CALLER + +From set, reply-to non-existent. +**** +exim -odi CALLER +From: CALLER +Reply-to: + +From set, reply-to empty +**** +exim -odi CALLER +From: CALLER +Reply-to: usery + +From set, reply-to set +**** +exim -odi CALLER +From: + +From empty, reply-to non-existent +**** diff --git a/test/scripts/0000-Basic/0413 b/test/scripts/0000-Basic/0413 new file mode 100644 index 000000000..583ea2ca5 --- /dev/null +++ b/test/scripts/0000-Basic/0413 @@ -0,0 +1,42 @@ +# callout hosts taken from transport +need_ipv4 +# +server PORT_S 3 +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +450 Temporary error +QUIT +250 OK +*eof +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +450 Temporary error +QUIT +250 OK +*eof +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +450 Temporary error +QUIT +250 OK +**** +exim -odi -bs +mail from:<r1@domain1> +rset +mail from:<r2@domain2> +rset +mail from:<r3@domain3> +quit +**** diff --git a/test/scripts/0000-Basic/0414 b/test/scripts/0000-Basic/0414 new file mode 100644 index 000000000..1d86997db --- /dev/null +++ b/test/scripts/0000-Basic/0414 @@ -0,0 +1,3 @@ +# caching in nested domainlists +exim -d -bt x@b.domain x@a.domain +**** diff --git a/test/scripts/0000-Basic/0415 b/test/scripts/0000-Basic/0415 new file mode 100644 index 000000000..29628b87a --- /dev/null +++ b/test/scripts/0000-Basic/0415 @@ -0,0 +1,37 @@ +# overflow in integer options +1 +exim -DARG1=4000000M -bP check_spool_space +**** +1 +exim -DARG1=40MK -bP check_spool_space +**** +1 +exim -DARG2=4000000000.123 -bP queue_only_load +**** +1 +exim -DARG2=4000000.123 -bP queue_only_load +**** +exim -bP finduser_retries +**** +1 +exim -DVALUE=999999999999999999 -bP finduser_retries +**** +exim -DVALUE=999999999 -bP finduser_retries +**** +1 +exim -DVALUE=999999999K -bP finduser_retries +**** +exim -DVALUE=999999K -bP finduser_retries +**** +1 +exim -DVALUE=999999M -bP finduser_retries +**** +1 +exim -DVALUE=99Q -bP finduser_retries +**** +1 +exim -DVALUE=Q -bP finduser_retries +**** +1 +exim -DVALUE="99 extra" -bP finduser_retries +**** diff --git a/test/scripts/0000-Basic/0416 b/test/scripts/0000-Basic/0416 new file mode 100644 index 000000000..973316b3a --- /dev/null +++ b/test/scripts/0000-Basic/0416 @@ -0,0 +1,49 @@ +# ACL "discard" verb +1 +exim -bs +helo xxx +**** +# The -odi's below aren't for real - they are just testing that -odi cannot +# override queue_only because no_queue_only_override is set. +1 +exim -odi x@y +discard: yes +. +**** +exim -odi -bs +mail from:<discard@x.y> +rcpt to:<a@b> +rcpt to:<discard@p.q> +data +Testing +. +mail from:<ok@x.y> +rcpt to:<a@b> +rcpt to:<discard@p.q> +rcpt to:<nested_discard@p.q> +data +Testing +. +mail from:<ok@x.y> +rcpt to:<discard@p.q> +data +Testing +. +mail from:<ok@x.y> +rcpt to:<a@b> +data +discard: yes + +Testing +. +mail from:<ok@x.y> +rcpt to:<data_message_discard@b> +data +. +quit +**** +1 +exim data_message_discard@y +. +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0417 b/test/scripts/0000-Basic/0417 new file mode 100644 index 000000000..ac3da7d32 --- /dev/null +++ b/test/scripts/0000-Basic/0417 @@ -0,0 +1,15 @@ +# smtp_return_error_details and sender verify defer +need_ipv4 +# +exim -bs +mail from:<x@host.test.again.dns> +rcpt to:<x@y> +rcpt to:<a@b> +quit +**** +exim -DRETURN_ERROR_DETAILS=true -bs +mail from:<x@host.test.again.dns> +rcpt to:<x@y> +rcpt to:<a@b> +quit +**** diff --git a/test/scripts/0000-Basic/0418 b/test/scripts/0000-Basic/0418 new file mode 100644 index 000000000..147ae559a --- /dev/null +++ b/test/scripts/0000-Basic/0418 @@ -0,0 +1,6 @@ +# Continuations in file ACL +exim -odq -bs +mail from:<> +rcpt to:<x@y> +quit +**** diff --git a/test/scripts/0000-Basic/0419 b/test/scripts/0000-Basic/0419 new file mode 100644 index 000000000..c79a4e392 --- /dev/null +++ b/test/scripts/0000-Basic/0419 @@ -0,0 +1,5 @@ +# hosts_treat_as_local and +local_domains +need_ipv4 +# +exim -d -bv k@mxt13.test.ex +**** diff --git a/test/scripts/0000-Basic/0420 b/test/scripts/0000-Basic/0420 new file mode 100644 index 000000000..c61a23d1e --- /dev/null +++ b/test/scripts/0000-Basic/0420 @@ -0,0 +1,14 @@ +# received_header_text +exim -d -bh V4NET.0.0.0 +mail from:<x@y> +rcpt to:<x@y> +data +Message. +. +mail from:<a@b> +rcpt to:<x@y> +data +Message. +. +quit +**** diff --git a/test/scripts/0000-Basic/0421 b/test/scripts/0000-Basic/0421 new file mode 100644 index 000000000..f4bcd651d --- /dev/null +++ b/test/scripts/0000-Basic/0421 @@ -0,0 +1,6 @@ +# rewrite at transport time +exim -odi a@b.c +From: p@q.r +To: a@b.c +Reply-to: e@f.g +**** diff --git a/test/scripts/0000-Basic/0422 b/test/scripts/0000-Basic/0422 new file mode 100644 index 000000000..4dbf104bd --- /dev/null +++ b/test/scripts/0000-Basic/0422 @@ -0,0 +1,7 @@ +# dnsbl: orphan CNAME and multiple A records +exim -bh V4NET.13.13.1 +quit +**** +exim -bh V4NET.13.13.2 +quit +**** diff --git a/test/scripts/0000-Basic/0423 b/test/scripts/0000-Basic/0423 new file mode 100644 index 000000000..693abf1b1 --- /dev/null +++ b/test/scripts/0000-Basic/0423 @@ -0,0 +1,4 @@ +# Line breaking in SMTP error message containing a long word +exim -bh V4NET.13.13.1 +quit +**** diff --git a/test/scripts/0000-Basic/0424 b/test/scripts/0000-Basic/0424 new file mode 100644 index 000000000..aed286881 --- /dev/null +++ b/test/scripts/0000-Basic/0424 @@ -0,0 +1,6 @@ +# Default value of return-path in -bt and delivery +2 +exim -bt userx +**** +exim -odi userx +**** diff --git a/test/scripts/0000-Basic/0425 b/test/scripts/0000-Basic/0425 new file mode 100644 index 000000000..725900a2f --- /dev/null +++ b/test/scripts/0000-Basic/0425 @@ -0,0 +1,9 @@ +# log_message with warn +need_ipv4 +# +exim -bs +mail from:<BAD@y> +rcpt to:<OK@x> +rcpt to:<BAD@x> +quit +**** diff --git a/test/scripts/0000-Basic/0426 b/test/scripts/0000-Basic/0426 new file mode 100644 index 000000000..eb7a27fba --- /dev/null +++ b/test/scripts/0000-Basic/0426 @@ -0,0 +1,17 @@ +# upper case letters in canonical domain name +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250 OK +MAIL FROM +250 OK +RCPT TO +550 Unknown +QUIT +250 OK +**** +exim -d-all+route+host_lookup -odi x@uppercase.test.ex +Testing +**** diff --git a/test/scripts/0000-Basic/0427 b/test/scripts/0000-Basic/0427 new file mode 100644 index 000000000..540d60ae5 --- /dev/null +++ b/test/scripts/0000-Basic/0427 @@ -0,0 +1,540 @@ +# Sieve tests using -bf +rmfiltertest +catwrite test-data +# Sieve filter +if address ["From","To"] "marian@abcdefgh.example" + { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if address :is "From" "marian@abcdefgh.example" + { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if address :is "To" "marian@abcdefgh.example" + { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if address :contains "To" "abcdefgh" + { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if address :matches "To" "*abc?efgh*" + { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if true { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if false { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if allof (false,false) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if allof (true,false) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if allof (false,true) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if allof (true,true) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if anyof (false,false) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if anyof (true,false) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if anyof (false,true) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if anyof (true,true) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not anyof (false,false) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not anyof (true,false) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not anyof (false,true) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not anyof (true,true) { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header "to" "MARIAN@abcdefgh.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :comparator "i;octet" "to" "MARIAN@abcdefgh.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :comparator "i;ascii-casemap" "to" "MARIAN@abcdefgh.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +require "envelope"; +if envelope "from" "marian@somenet.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +require "envelope"; +if envelope "from" "offerqn@bpk.example.com" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if exists [ "X-NotHere", "X-Notheretoo" ] { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if exists [ "X-NotHere", "Delivered-To" ] { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if exists [ "From", "Delivered-To" ] { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :contains "X-NotHere" "" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header "Delivered-To" "" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :contains "Delivered-To" "" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :contains "Delivered-To" "rc@irc.somenet.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header "Delivered-To" ["irc@irc.somenet.example"] { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header "Delivered-To" ["irc@irc.somenet.example","irc@01019somenet.example","some.one"] { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header "Mime-Version" "1.0" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if false { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if true { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if true { discard; } else { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if false { keep; } else { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if false { keep; } elsif true { discard; } else { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if true { discard; } elsif true { keep; } else { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if false { keep; } + else + { if true { discard; } else { keep; } } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :matches "to" "MA*AN@abc*fg?.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not header :matches "to" "MA?AN@abc*fg?.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :matches "to" "*marian@abcdefgh.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not header :matches "to" "?marian@abcdefgh.example" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :matches "to" "marian@abcdefgh.example*" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not header :matches "to" "marian@abcdefgh.example?" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :matches "x-special1" "\\?*\\*" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :matches "x-special1" "*\0*" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not header :matches "x-special1" "*\0*q" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not header :matches "x-special2" "\\?*\\*" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if not header :matches "x-special2" "*\0*" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if size :over 400 { + discard; + } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if size :over 4K { + discard; + } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if size :under 4K { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if size :under 400 { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if false { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +# Syntax checks +catwrite test-data +# no filter line here +if unknowntest { keep; } +**** +1 +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if test keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if test { keep; +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if true { unknownaction; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if true { fileinto abcdefgh; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +require "fileinto"; +if true { fileinto "abcdefgh"; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header ["to"] [ "marian@abcdefgh.example", "achnee"] { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header "to" [ "egal", "achnee" { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header "to","from"] "egal" { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header ["to","from" "egal" { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header ["to",,"from"] "egal" { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header ["to",] "egal" { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header [,"to"] "egal" { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if unknowntest { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :matches "to" "egal" { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +if header :unknown "to" "egal" { keep; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message +**** +catwrite test-data +# Sieve filter +# +require ["fileinto", "envelope"]; + +if header :matches "X-Warning" "* is listed at list.dsbl.org*" + { + keep; # keep in "In" folder + } +**** +exim -bf test-data <aux-fixed/TESTNUM.message2 +**** +catwrite test-data +# Sieve filter +if header "x-1" "1" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if not header "x-1" "=?ISO-8859-1?Q?=31?=" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "x-1b" "=?ISO-8859-1?Q?=31=" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "x-b64" "This is BASE64" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "x-b64-broken" "=?iso-8859-1?b?VGhpcyBpcyBCQVNFNjQ?=" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "x-q75total" "0123456789012345678901234567890123456789012345678901234567" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "x-q76total" "=?ISO-8859-1?Q?01234567890123456789012345678901234567890123456789012345678?=" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "X-Wrapped" "eins zwei drei" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "x-nomimewrap" "=?iso-8859-1?q?abc def ghi?=" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "subject" "abcdefghi" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +# Sieve filter +if header "x-mixed" "abc def" { discard; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** +catwrite test-data +#Sieve filter +if true { stop; fileinto "inbox.never"; } +**** +exim -bf test-data <aux-fixed/TESTNUM.message3 +**** diff --git a/test/scripts/0000-Basic/0428 b/test/scripts/0000-Basic/0428 new file mode 100644 index 000000000..940dea898 --- /dev/null +++ b/test/scripts/0000-Basic/0428 @@ -0,0 +1,87 @@ +# Sieve tests with actual delivery +exim -odi userx +Test 1 +**** +exim -odi userx +Filter: discard; +Test 2 +**** +exim -odi userx +Filter: require "fileinto"; fileinto "userx-extra"; +Test 3 +**** +exim -odi userx +Filter: redirect "redirected@test.ex"; +Test 4 +**** +exim -odi restrict-userx +Filter: require "fileinto"; fileinto "userx-extra"; +Test 5 +**** +# Syntax error in Sieve filter (missing "require") +exim -odi restrict-userx +Filter: fileinto "userx-extra"; +Test 6 +**** +# Test stop inside a block +exim -odi userx +Filter: if true { stop; fileinto "inbox.never"; } +Test 7 +**** +# This should fileinto inbox.JUNK (99 equal 99): +exim -odi userx +X-Sieve: 99 +Filter: require["fileinto","comparator-i;ascii-numeric"]; + if header :comparator "i;ascii-numeric" "X-Sieve" "99" { + fileinto "inbox.JUNK"; + stop; + } +Test 8 +**** +# This should not fileinto inbox.JUNK (98 not equal 99): +exim -odi userx +X-Sieve: 99 +Filter: require["fileinto","comparator-i;ascii-numeric"]; + if header :comparator "i;ascii-numeric" "X-Sieve" "98" { + fileinto "inbox.JUNK"; + stop; + } +Test 9 +**** +# This should fileinto inbox.JUNK (99-suffix equal 99): +exim -odi userx +X-Sieve: 99- +Filter: require["fileinto","comparator-i;ascii-numeric"]; + if header :comparator "i;ascii-numeric" "X-Sieve" "99" { + fileinto "inbox.JUNK"; + stop; + } +Test 10 +**** +# This should fileinto inbox.JUNK (non-numeric equal non-numeric): +exim -odi userx +X-Sieve: -99 +Filter: require["fileinto","comparator-i;ascii-numeric"]; + if header :comparator "i;ascii-numeric" "X-Sieve" "-99" { + fileinto "inbox.JUNK"; + stop; + } +Test 11 +**** +# This should fileinto inbox.JUNK (non-numeric equal non-numeric): +exim -odi userx +X-Sieve: -99 +Filter: require["fileinto","comparator-i;ascii-numeric"]; + if header :comparator "i;ascii-numeric" "X-Sieve" "-98" { + fileinto "inbox.JUNK"; + stop; + } +Test 12 +**** +# This is a simple test of "vacation" +exim -odi -f someone@test.ex userx +To: userx@test.ex +Filter: require ["vacation"]; + vacation "I am gone. Not here."; +Test 13 +**** diff --git a/test/scripts/0000-Basic/0429 b/test/scripts/0000-Basic/0429 new file mode 100644 index 000000000..e430e7856 --- /dev/null +++ b/test/scripts/0000-Basic/0429 @@ -0,0 +1,15 @@ +# hosts_avoid_esmtp +need_ipv4 +# +exim x@y +**** +server PORT_S +220 Server ready +HELO +550 No +QUIT +250 OK +**** +exim -q +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0430 b/test/scripts/0000-Basic/0430 new file mode 100644 index 000000000..2d338965d --- /dev/null +++ b/test/scripts/0000-Basic/0430 @@ -0,0 +1,30 @@ +# /MX in a list of hosts +exim -DLIST=ten-1.test.ex:mxt8.test.ex/MX -bt x@manual.route +**** +exim -DLIST=ten-1.test.ex:mxt8.test.ex/MX:ten-6.test.ex -bt x@manual.route +**** +exim -DLIST=mxt8.test.ex/MX:ten-6.test.ex -bt x@manual.route +**** +exim -DLIST=mxt8.test.ex/MX -bt x@random.manual.route +**** +exim -DLIST=ten-1.test.ex:mxt8.test.ex/MX -bt x@random.manual.route +**** +exim -DLIST=ten-1.test.ex:mxt8.test.ex/MX:ten-6.test.ex -bt x@random.manual.route y@random.manual.route +**** +exim -DLIST=mxt8.test.ex/MX:ten-6.test.ex -bt x@random.manual.route +**** +exim -DLIST=ten-1.test.ex:mxt5.test.ex/MX:ten-6.test.ex -bt x@manual.route +**** +1 +exim -DLIST=mxt5.test.ex/MX:ten-6.test.ex -bt x@manual.route +**** +exim -DSELF=send -DLIST=mxt5.test.ex/MX:ten-6.test.ex -bt x@manual.route +**** +2 +exim -DSELF=pass -DLIST=mxt5.test.ex/MX:ten-6.test.ex -bt x@manual.route +**** +1 +exim -DLIST=mxt11.test.ex/MX:ten-6.test.ex -bt x@random.manual.route +**** +exim -DLIST=mxt11a.test.ex/MX:ten-6.test.ex -bt x@random.manual.route +**** diff --git a/test/scripts/0000-Basic/0431 b/test/scripts/0000-Basic/0431 new file mode 100644 index 000000000..093e26325 --- /dev/null +++ b/test/scripts/0000-Basic/0431 @@ -0,0 +1,45 @@ +# affixes in RCPT commands +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250 OK +MAIL +250 OK +RCPT +250 OK +RCPT +250 OK +DATA +354 Go ahead +. +250 OK +QUIT +220 OK +**** +exim -odi pre-xxx@a.b xxx+post@a.b +**** +server PORT_S +220 Server ready +EHLO +250 OK +MAIL +250 OK +RCPT +250 OK +RCPT +250 OK +DATA +354 Go ahead +. +250 OK +QUIT +220 OK +**** +exim -DAFFIX=rcpt_include_affixes -odi pre-xxx@a.b xxx+post@a.b +**** +exim -odi pre.xxx@a.b +**** +exim -DAFFIX=rcpt_include_affixes -odi pre.xxx@a.b +**** diff --git a/test/scripts/0000-Basic/0432 b/test/scripts/0000-Basic/0432 new file mode 100644 index 000000000..4d9935317 --- /dev/null +++ b/test/scripts/0000-Basic/0432 @@ -0,0 +1,56 @@ +# callout with -bh and -bhc +need_ipv4 +# +exim -bh 1.2.3.4 +mail from:<x@y> +quit +**** +server PORT_S +220 server ready +HELO +250 OK +MAIL +250 OK +RCPT +250 OK +QUIT +220 OK +**** +exim -d -bhc 1.2.3.4 +mail from:<x@y> +quit +**** +exim -d -bhc 1.2.3.4 +mail from:<x@y> +quit +**** +exim -bhc 1.2.3.4 +mail from:<x@y> +quit +**** +server PORT_S +220 server ready +HELO +250 OK +MAIL +250 OK +RCPT +250 OK +QUIT +220 OK +**** +exim -bhc 1.2.3.4 +mail from:<a@b> +quit +**** +# Timeout stuff +server PORT_S +220 server ready +HELO +*sleep 2 +*eof +**** +exim -bhc 1.2.3.4 +mail from:<p1@q> +quit +**** diff --git a/test/scripts/0000-Basic/0433 b/test/scripts/0000-Basic/0433 new file mode 100644 index 000000000..995259e8a --- /dev/null +++ b/test/scripts/0000-Basic/0433 @@ -0,0 +1,21 @@ +# local_interfaces, daemon_smtp_port, and -oX interactions (IPv4) +need_ipv4 +# +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D +**** +killdaemon +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D:PORT_D2 +**** +killdaemon +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D:PORT_D2 -DIFACE='local_interfaces = <; 127.0.0.1.PORT_D4 ; 0.0.0.0' +**** +killdaemon +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D:PORT_D2 -DIFACE='local_interfaces = <; 0.0.0.0; 127.0.0.1.PORT_D4' +**** +killdaemon +exim -d -bd -DSERVER=server -oX PORT_D3 -DPORT=daemon_smtp_port=PORT_D:PORT_D2 -DIFACE='local_interfaces = <; 127.0.0.1.PORT_D4 ; 0.0.0.0' +**** +killdaemon +exim -d -bd -DSERVER=server -oX '<; 0.0.0.0.PORT_D;0.0.0.0.PORT_D2' +**** +killdaemon diff --git a/test/scripts/0000-Basic/0434 b/test/scripts/0000-Basic/0434 new file mode 100644 index 000000000..17c3377b2 --- /dev/null +++ b/test/scripts/0000-Basic/0434 @@ -0,0 +1,8 @@ +# extra_local_interfaces +need_ipv4 +# +exim -bt a@b +**** +1 +exim -bt -DELI=1.2.3.4 a@b +**** diff --git a/test/scripts/0000-Basic/0435 b/test/scripts/0000-Basic/0435 Binary files differnew file mode 100644 index 000000000..3b7a9092b --- /dev/null +++ b/test/scripts/0000-Basic/0435 diff --git a/test/scripts/0000-Basic/0436 b/test/scripts/0000-Basic/0436 new file mode 100644 index 000000000..5e23ba7e4 --- /dev/null +++ b/test/scripts/0000-Basic/0436 @@ -0,0 +1,3 @@ +# batch_max and multiple domains +exim -odi a@d1.ex b@d1.ex c@d2.ex d@d2.ex +**** diff --git a/test/scripts/0000-Basic/0437 b/test/scripts/0000-Basic/0437 new file mode 100644 index 000000000..c1b4c121d --- /dev/null +++ b/test/scripts/0000-Basic/0437 @@ -0,0 +1,9 @@ +# queue run: close lookups before delivery +exim -odq userx +First message +**** +exim -odq userx +Second message +**** +exim -q -d-all+lookup +**** diff --git a/test/scripts/0000-Basic/0438 b/test/scripts/0000-Basic/0438 new file mode 100644 index 000000000..099efba0d --- /dev/null +++ b/test/scripts/0000-Basic/0438 @@ -0,0 +1,10 @@ +# -oP to override pid file +need_ipv4 +# +exim -d -DSERVER=server -bd -oX PORT_D +**** +killdaemon +# PID file must be DIR/spool/exim-daemon.* in order for "killdaemon" to work +exim -d -DSERVER=server -bd -oX PORT_D -oP DIR/spool/exim-daemon.anotherpid +**** +killdaemon diff --git a/test/scripts/0000-Basic/0439 b/test/scripts/0000-Basic/0439 new file mode 100644 index 000000000..0da12190d --- /dev/null +++ b/test/scripts/0000-Basic/0439 @@ -0,0 +1,17 @@ +# ridiculously large message_size_limit +need_ipv4 +# +1 +exim -odq userx +**** +exim -bs +quit +**** +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 421 +QUIT +??? 221 +**** +killdaemon diff --git a/test/scripts/0000-Basic/0440 b/test/scripts/0000-Basic/0440 new file mode 100644 index 000000000..12609f756 --- /dev/null +++ b/test/scripts/0000-Basic/0440 @@ -0,0 +1,45 @@ +# More than two messages to same host, with transport filter +need_ipv4 +# +exim -odi -odqs x1@y1 +First message +**** +exim -odi -odqs x2@y2 +Second message +**** +exim -odi -odqs x3@y3 +Third message +**** +server PORT_S +220 server ready +EHLO +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 OK +. +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 OK +. +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 OK +. +250 OK +QUIT +221 OK +**** +exim -q +**** diff --git a/test/scripts/0000-Basic/0441 b/test/scripts/0000-Basic/0441 new file mode 100644 index 000000000..0dc17616c --- /dev/null +++ b/test/scripts/0000-Basic/0441 @@ -0,0 +1,8 @@ +# Message ids with and without domain literals +exim -odq userx +Message-id: <something@[1.2.3.4]> +**** +exim -odq userx +Message-Id: <something@some.domain> +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0442 b/test/scripts/0000-Basic/0442 new file mode 100644 index 000000000..d5c11ce88 --- /dev/null +++ b/test/scripts/0000-Basic/0442 @@ -0,0 +1,6 @@ +# multiple .includes and .include_if_exists +exim -bP routers +**** +1 +exim -DBAD=".include /non/existent" +**** diff --git a/test/scripts/0000-Basic/0443 b/test/scripts/0000-Basic/0443 new file mode 100644 index 000000000..8e3b03779 --- /dev/null +++ b/test/scripts/0000-Basic/0443 @@ -0,0 +1,6 @@ +# verify callout with no transport +exim -bhc V4NET.0.0.1 +Mail from: x@ten-1.test.ex +rcpt to: x@y +quit +**** diff --git a/test/scripts/0000-Basic/0444 b/test/scripts/0000-Basic/0444 new file mode 100644 index 000000000..2f2e865e5 --- /dev/null +++ b/test/scripts/0000-Basic/0444 @@ -0,0 +1,5 @@ +# headers remove in system filter +exim -odi userx +X-XXX-Original-Host: some.host.name +This is a test message. +**** diff --git a/test/scripts/0000-Basic/0445 b/test/scripts/0000-Basic/0445 new file mode 100644 index 000000000..fd38f85b5 --- /dev/null +++ b/test/scripts/0000-Basic/0445 @@ -0,0 +1,9 @@ +# :fail: with looked up empty string +exim -bh 1.2.3.4 +mail from:<lp1@x.y> +rcpt to:<zz@x.y> +rset +mail from:<lp2@x.y> +rcpt to:<zz@x.y> +quit +**** diff --git a/test/scripts/0000-Basic/0446 b/test/scripts/0000-Basic/0446 new file mode 100644 index 000000000..00e7ec6b9 --- /dev/null +++ b/test/scripts/0000-Basic/0446 @@ -0,0 +1,14 @@ +# $received_count +exim -odi userx +Received: the first received: line +Received: the second received: line +**** +exim -odi -bs +mail from:<> +rcpt to:userx@test.ex +data +Received: the first received: line +Received: the second received: line +. +quit +**** diff --git a/test/scripts/0000-Basic/0447 b/test/scripts/0000-Basic/0447 new file mode 100644 index 000000000..fdea6c066 --- /dev/null +++ b/test/scripts/0000-Basic/0447 @@ -0,0 +1,33 @@ +# timeout_connect etc. +need_ipv4 +# +exim -brt a.c auth_failed +**** +exim -brt a.c timeout +**** +exim -brt a.c timeout_connect +**** +exim -DINSERT="* timeout_A F,1d,30s" -brt a.c timeout_a +**** +exim -DINSERT="* timeout_connect_A F,1d,29s" -brt a.c timeout_connect_a +**** +# Hits the timeout_connect line +exim -odi userx +**** +dump retry +sudo rm spool/db/* +# Hits the inserted line - any timeout for A +exim -DINSERT="* timeout_A F,1d,30s" -qf +**** +dump retry +sudo rm spool/db/* +# Hits the inserted line - timeout_connect for A +exim -DINSERT="* timeout_connect_A F,1d,29s" -qf +**** +dump retry +sudo rm spool/db/* +exim -odi userx@xx.test.again.dns +**** +dump retry +sudo rm spool/db/* +no_msglog_check diff --git a/test/scripts/0000-Basic/0448 b/test/scripts/0000-Basic/0448 new file mode 100644 index 000000000..bc2856036 --- /dev/null +++ b/test/scripts/0000-Basic/0448 @@ -0,0 +1,23 @@ +# rewrite to empty sender +exim -f postmaster@my.domain userx +**** +exim -bs +ehlo x.y.z +mail from:<postmaster@my.domain> +rcpt to:<userx@test.ex> +data +1234 +. +quit +**** +# This one provokes a sender verify (the above one doesn't) +exim -bs +ehlo x.y.z +mail from:<postmaster@my.domain> +rcpt to:<usery@test.ex> +data +1234 +. +quit +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0449 b/test/scripts/0000-Basic/0449 new file mode 100644 index 000000000..42f2dfb51 --- /dev/null +++ b/test/scripts/0000-Basic/0449 @@ -0,0 +1,11 @@ +# queue_only_file +sudo rm -f DIR/test-data +exim -odi userx +Message 1 +**** +touch DIR/test-data +exim -odi userx +Message 2 +**** +sudo rm DIR/test-data +no_msglog_check diff --git a/test/scripts/0000-Basic/0450 b/test/scripts/0000-Basic/0450 new file mode 100644 index 000000000..fed2df219 --- /dev/null +++ b/test/scripts/0000-Basic/0450 @@ -0,0 +1,10 @@ +# expanded port option +need_ipv4 +# +exim -d-all+transport -odi userx +Message 1 +**** +exim -d-all+transport -q +**** +dump retry +no_msglog_check diff --git a/test/scripts/0000-Basic/0451 b/test/scripts/0000-Basic/0451 new file mode 100644 index 000000000..178b4a51f --- /dev/null +++ b/test/scripts/0000-Basic/0451 @@ -0,0 +1,11 @@ +# verify sender at DATA time +exim -odq -bs +ehlo a.b.c.d +mail from:<bad@test.ex> +rcpt to:<good@test.ex> +data +This is a message. +. +quit +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0452 b/test/scripts/0000-Basic/0452 new file mode 100644 index 000000000..7f94509b9 --- /dev/null +++ b/test/scripts/0000-Basic/0452 @@ -0,0 +1,10 @@ +# "extra_headers" argument in "mail" in user filter +exim -odi userx +fno: 1 +This is a message. +**** +exim -odi userx +fno: 2 +Another message +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0453 b/test/scripts/0000-Basic/0453 new file mode 100644 index 000000000..8c199fe39 --- /dev/null +++ b/test/scripts/0000-Basic/0453 @@ -0,0 +1,26 @@ +# smtp_max_synprot_errors +1 +exim -bs +helo +helo +helo +helo +helo +helo +**** +1 +exim -DLIMIT=smtp_max_synprot_errors=1 -bs +mail from:<> +mail from:<> +mail from:<> +**** +exim -bh V4NET.0.0.1 +helo xxxx +mail from:<> +rcpt to:<bad syntax@x.y.z> +rcpt to:<bad syntax@x.y.z> +rcpt to:<bad syntax@x.y.z> +rcpt to:<bad syntax@x.y.z> +rcpt to:<bad syntax@x.y.z> +quit +**** diff --git a/test/scripts/0000-Basic/0454 b/test/scripts/0000-Basic/0454 new file mode 100644 index 000000000..902e2966e --- /dev/null +++ b/test/scripts/0000-Basic/0454 @@ -0,0 +1,25 @@ +# rewrite logging provoked from filter +need_ipv4 +# +exim -bd -DSERVER=server -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +helo rhu.barb +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test message. +. +??? 250 +QUIT +??? 221 +**** +killdaemon +# Wait for delivery process +sleep 1 +no_msglog_check diff --git a/test/scripts/0000-Basic/0455 b/test/scripts/0000-Basic/0455 new file mode 100644 index 000000000..42b03cfbf --- /dev/null +++ b/test/scripts/0000-Basic/0455 @@ -0,0 +1,9 @@ +# hosts_max_try and final cutoff +need_ipv4 +# +exim -DHOSTS_MAX_TRY=1 -odi userx@mxt97.test.ex +**** +sleep 4 +exim -DHOSTS_MAX_TRY=1 -q +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0456 b/test/scripts/0000-Basic/0456 new file mode 100644 index 000000000..a0ad96132 --- /dev/null +++ b/test/scripts/0000-Basic/0456 @@ -0,0 +1,3 @@ +# errors_to when sender address is empty +exim -f "" -bt test-bus-error@localhost +**** diff --git a/test/scripts/0000-Basic/0457 b/test/scripts/0000-Basic/0457 new file mode 100644 index 000000000..6c57b378c --- /dev/null +++ b/test/scripts/0000-Basic/0457 @@ -0,0 +1,6 @@ +# sender_helo_name resetting after reject +exim -bs +HELO a.b.c.d +MAIL FROM:<x@y> +quit +**** diff --git a/test/scripts/0000-Basic/0458 b/test/scripts/0000-Basic/0458 new file mode 100644 index 000000000..c05b4b6ff --- /dev/null +++ b/test/scripts/0000-Basic/0458 @@ -0,0 +1,118 @@ +# logging smtp protocol errors and pipelining +need_ipv4 +# +exim -bd -DSERVER=server -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +DATA +??? 503 +QUIT +??? 221 +**** +client 127.0.0.1 PORT_D +??? 220 +helo rhu.barb +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +DATA +??? 503 +QUIT +??? 221 +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<deny@test.ex> +??? 550 +rcpt to:<userx@test.ex> +??? 503 +DATA +??? 503 +QUIT +??? 221 +**** +client 127.0.0.1 PORT_D +??? 220 +helo rhu.barb +??? 250 +mail from:<deny@test.ex> +??? 550 +rcpt to:<userx@test.ex> +??? 503 +DATA +??? 503 +QUIT +??? 221 +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +rcpt to:<ph11@test.ex> +??? 550 +rcpt to:<ph12@test.ex> +??? 550 +DATA +??? 503 +QUIT +??? 221 +**** +client 127.0.0.1 PORT_D +??? 220 +helo rhu.barb +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +rcpt to:<ph11@test.ex> +??? 550 +rcpt to:<ph12@test.ex> +??? 550 +DATA +??? 503 +QUIT +??? 221 +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +rcpt to:<userx@test.ex> +??? 503 +DATA +??? 503 +QUIT +??? 221 +**** +killdaemon +# Wait for delivery process +sleep 1 +no_msglog_check diff --git a/test/scripts/0000-Basic/0459 b/test/scripts/0000-Basic/0459 new file mode 100644 index 000000000..873c5d87f --- /dev/null +++ b/test/scripts/0000-Basic/0459 @@ -0,0 +1,6 @@ +# unwanted search error messages in ACLs +exim -bs +mail from:<> +rcpt to:outer@xx +quit +**** diff --git a/test/scripts/0000-Basic/0460 b/test/scripts/0000-Basic/0460 new file mode 100644 index 000000000..aa9a45084 --- /dev/null +++ b/test/scripts/0000-Basic/0460 @@ -0,0 +1,46 @@ +# bare LF in header lines (TCP input) +need_ipv4 +# +exim -bd -DSERVER=server -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +From: x@y +To: some@one +Subject: contains >\n< bare lf +Aheader: Another header line + +This is the message body. +. +??? 2 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +From: x@y\nBheader: some text +To: some@one +Subject: contains >\n< bare lf +Aheader: Another header line + +This is the message body. +. +??? 2 +QUIT +??? 221 +**** +killdaemon +# Wait for delivery process +sleep 1 diff --git a/test/scripts/0000-Basic/0461 b/test/scripts/0000-Basic/0461 new file mode 100644 index 000000000..8e6bc2acb --- /dev/null +++ b/test/scripts/0000-Basic/0461 @@ -0,0 +1,71 @@ +# fallback_hosts after main hosts have timed out +need_ipv4 +# +server PORT_S +220 server ready +EHLO +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 OK +. +250 OK +QUIT +221 OK +**** +exim -odi userx@test.ex +Short message +**** +sleep 2 +server PORT_S +220 server ready +EHLO +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 OK +. +250 OK +QUIT +221 OK +**** +exim -odi userx@test.ex +Short message +**** +server PORT_S +220 server ready +EHLO +250 OK +MAIL +250 OK +RCPT +250 OK +DATA +354 OK +. +250 OK +QUIT +221 OK +**** +exim -odi userx@test.ex +Short message +**** +exim -DFALLBACK= -odi userx@test.ex +Short message +**** +exim -DFALLBACK= -DROUTE_DATA=V4NET.0.0.2 -odi userx@test.ex +Short message +**** +sleep 2 +exim -DFALLBACK= -DROUTE_DATA=V4NET.0.0.2 -q +**** +exim -DFALLBACK= -DROUTE_DATA=V4NET.0.0.2 -odi userx@test.ex +Short message +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0462 b/test/scripts/0000-Basic/0462 new file mode 100644 index 000000000..a6f3622ba --- /dev/null +++ b/test/scripts/0000-Basic/0462 @@ -0,0 +1,43 @@ +# callout verification with/without postmaster and caching +need_ipv4 +# +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RSET +250 OK +MAIL FROM +250 OK +RCPT TO +550 NO +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1 +MAIL FROM:<Ok@localhost> +RCPT TO:<checkpm@test.ex> +RCPT TO:<nocheckpm@test.ex> +QUIT +**** +# This one fails the actual address +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 NO +QUIT +250 OK +**** +sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2 +MAIL FROM:<NOTok@elsewhere> +RCPT TO:<nocheckpm@test.ex> +QUIT +**** diff --git a/test/scripts/0000-Basic/0463 b/test/scripts/0000-Basic/0463 new file mode 100644 index 000000000..19577d803 --- /dev/null +++ b/test/scripts/0000-Basic/0463 @@ -0,0 +1,5 @@ +# @mx_xxx with domain widening +need_ipv4 +# +exim -d -bt x@ten-1 +**** diff --git a/test/scripts/0000-Basic/0464 b/test/scripts/0000-Basic/0464 new file mode 100644 index 000000000..d2e231cac --- /dev/null +++ b/test/scripts/0000-Basic/0464 @@ -0,0 +1,8 @@ +# domain_data for multiple recipient verify in an ACL +need_ipv4 +# +exim -d -bs +mail from:<> +rcpt to:<abc@domain1> +quit +**** diff --git a/test/scripts/0000-Basic/0465 b/test/scripts/0000-Basic/0465 new file mode 100644 index 000000000..03abe164f --- /dev/null +++ b/test/scripts/0000-Basic/0465 @@ -0,0 +1,30 @@ +# strip_trailing_dot +exim -d -bs +mail from:<> +rcpt to:<abc@domain.> +quit +**** +1 +exim -f abc@somewhere. xxx +**** +exim -DSTD=strip_trailing_dot -d -bs +mail from:<> +rcpt to:<abc@domain.> +data +To: abc@domain. +. +quit +**** +exim -DSTD=strip_trailing_dot -f abc@somewhere. xxx@yyy. +**** +exim -d -bs +mail from:<> +rcpt to:<abc@xyz> +data +To: abc@xyz. +. +quit +**** +exim -bp +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0466 b/test/scripts/0000-Basic/0466 new file mode 100644 index 000000000..933a1dbd2 --- /dev/null +++ b/test/scripts/0000-Basic/0466 @@ -0,0 +1,5 @@ +# long hostlist string in route_list expansion +need_ipv4 +# +exim -bt x@y +**** diff --git a/test/scripts/0000-Basic/0467 b/test/scripts/0000-Basic/0467 new file mode 100644 index 000000000..dcd19b9d7 --- /dev/null +++ b/test/scripts/0000-Basic/0467 @@ -0,0 +1,31 @@ +# SRV lookups +need_ipv4 +# +2 +exim -bt x@nosrv.test.ex x@srv01.test.ex x@mx246.test.ex x@srv02.test.ex x@nosmtp.test.ex x@srv03.test.ex +**** +exim -DSRV=smtp2 -bt x@srv03.test.ex +**** +exim -odi -N x@srv01.test.ex +**** +exim -odi -DSRV=smtp2 -N x@srv03.test.ex +**** +# Actually send a message to a port specified in the SRV record. +server PORT_S +220 Server ready +EHLO +250-server id +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +354 OK +. +250 OK +QUIT +250 OK +**** +exim -v -odi x@srv27.test.ex +**** diff --git a/test/scripts/0000-Basic/0468 b/test/scripts/0000-Basic/0468 new file mode 100644 index 000000000..7c0790526 --- /dev/null +++ b/test/scripts/0000-Basic/0468 @@ -0,0 +1,14 @@ +# $message_body in multiple SMTP messages +exim -bs +mail from:<> +rcpt to:<x@y> +data +This is the FIRST message body. +. +mail from:<> +rcpt to:<x@y> +data +This is the SECOND message body. +. +quit +**** diff --git a/test/scripts/0000-Basic/0469 b/test/scripts/0000-Basic/0469 new file mode 100644 index 000000000..ac2b67969 --- /dev/null +++ b/test/scripts/0000-Basic/0469 @@ -0,0 +1,6 @@ +# MX -> one-component name +need_ipv4 +# +2 +exim -d -bt x@mxt1c.test.ex +**** diff --git a/test/scripts/0000-Basic/0470 b/test/scripts/0000-Basic/0470 new file mode 100644 index 000000000..b836021f8 --- /dev/null +++ b/test/scripts/0000-Basic/0470 @@ -0,0 +1,12 @@ +# logging repeated warning messages in ACLs +exim -bs +HELO xxx +MAIL FROM:<> +RCPT TO:<a@b.c> +RCPT TO:<x@y.z> +RSET +MAIL FROM:<> +RCPT TO:<a@b.c> +RCPT TO:<x@y.z> +QUIT +**** diff --git a/test/scripts/0000-Basic/0471 b/test/scripts/0000-Basic/0471 new file mode 100644 index 000000000..b00658c30 --- /dev/null +++ b/test/scripts/0000-Basic/0471 @@ -0,0 +1,166 @@ +# multiple rewrites on stupidly long header lines +exim -d -odq r1@test.ex +To: random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example, + random@test.example +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0472 b/test/scripts/0000-Basic/0472 new file mode 100644 index 000000000..94d2dc929 --- /dev/null +++ b/test/scripts/0000-Basic/0472 @@ -0,0 +1,7 @@ +# $n in system filter -> $sn in user filter with different filter users +exim -odi userz +Testing +**** +exim -DFUSER=system_filter_user=EXIMUSER -odi userz +Testing 2 +**** diff --git a/test/scripts/0000-Basic/0473 b/test/scripts/0000-Basic/0473 new file mode 100644 index 000000000..4624f5f01 --- /dev/null +++ b/test/scripts/0000-Basic/0473 @@ -0,0 +1,176 @@ +# recipient callouts - sender/postmaster caching and QUIT after timeout +need_ipv4 +# +server PORT_S 3 +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Server ready +HELO +250 OK +MAIL FROM +550 NOTOK +QUIT +250 OK +**** +exim -bs +ehlo xxxx +mail from: s1@test.ex +rcpt to: r1@test.ex +rset +mail from: s1@test.ex +rcpt to: r1@test.ex +rset +mail from: s2@test.ex +rcpt to: r1@test.ex +rset +mail from: s3@other.ex +rcpt to: r3@other.ex +rset +mail from: s4@other.ex +rcpt to: r4@other.ex +rset +quit +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +exim -DUSE_SENDER= -bs +ehlo xxxx +mail from: x9@test.ex +rcpt to: r1@test.ex +quit +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +exim -DUSE_SENDER=,use_postmaster -bs +ehlo xxxx +mail from: x9@test.ex +rcpt to: r1@test.ex +quit +**** +server PORT_S +220 server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 NO +QUIT +250 OK +**** +exim -bs +ehlo xxxx +mail from:<x9@test.ex> +rcpt to:<r9@test.ex> +quit +**** +# A repeat should use the cache +exim -bs +ehlo xxxx +mail from:<x9@test.ex> +rcpt to:<r9@test.ex> +quit +**** +server PORT_S +220 server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +550 NO +QUIT +250 OK +**** +# Ditto for sender verify +exim -DACL_RCPT=acl_rcpt_sender -bs +ehlo xxxx +mail from:<x9@test.ex> +rcpt to:<r9@test.ex> +quit +**** +# Repeat for cache +exim -DACL_RCPT=acl_rcpt_sender -bs +ehlo xxxx +mail from:<x9@test.ex> +rcpt to:<r9@test.ex> +quit +**** +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +exim -DUSE_SENDER=,defer_ok,random,use_postmaster -bs +ehlo xxxx +mail from: x11@two.test.ex +rcpt to: r11@two.test.ex +quit +**** +dump callout +server PORT_S +220 Server ready +HELO +250 OK +MAIL FROM +250 OK +RCPT TO +*sleep 2 +**** +exim -DUSE_SENDER= -bs -d-all+verify -v +ehlo xxxx +mail from: x11@two.test.ex +rcpt to: r11@two.test.ex +quit +**** +server PORT_S +*sleep 2 +**** +exim -DUSE_SENDER= -bs -d-all+verify -v +ehlo xxxx +mail from: x11@two.test.ex +rcpt to: r11@two.test.ex +quit +**** diff --git a/test/scripts/0000-Basic/0474 b/test/scripts/0000-Basic/0474 new file mode 100644 index 000000000..4aae5d2f9 --- /dev/null +++ b/test/scripts/0000-Basic/0474 @@ -0,0 +1,49 @@ +# handling malformed SMTP return codes +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +354 SEND IT +. +850 NONSENSE +QUIT +250 OK +**** +exim -odi abcd@xyz +Test data. +**** +dump retry +server PORT_S +220 Server ready +EHLO +250 OK +MAIL FROM +850 RUBBISH +QUIT +250 OK +**** +exim -qf +**** +dump retry +server PORT_S +220 Server ready +EHLO +250 OK +MAIL FROM +250 OK +RCPT TO +850 RUBBISH +QUIT +250 OK +**** +exim -qf +**** +dump retry +no_msglog_check diff --git a/test/scripts/0000-Basic/0475 b/test/scripts/0000-Basic/0475 new file mode 100644 index 000000000..e863f07c6 --- /dev/null +++ b/test/scripts/0000-Basic/0475 @@ -0,0 +1,6 @@ +# malformed item in host list +exim -bh V4NET.0.0.0 +mail from:<> +rcpt to:<a@b> +quit +**** diff --git a/test/scripts/0000-Basic/0476 b/test/scripts/0000-Basic/0476 new file mode 100644 index 000000000..a7ddb0f4b --- /dev/null +++ b/test/scripts/0000-Basic/0476 @@ -0,0 +1,24 @@ +# RSET error for multiple messages +need_ipv4 +# +exim -odi -odqs userx@test.ex +First message +**** +exim -odi -odqs usery@test.ex +Second message +**** +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +550 NO +>*eof +**** +exim -d-all+transport+process_info -q +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0477 b/test/scripts/0000-Basic/0477 new file mode 100644 index 000000000..a4f71e185 --- /dev/null +++ b/test/scripts/0000-Basic/0477 @@ -0,0 +1,6 @@ +# bind to outgoing interface fails +need_ipv4 +# +exim -odi userx@test.ex +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0478 b/test/scripts/0000-Basic/0478 new file mode 100644 index 000000000..fcbc98938 --- /dev/null +++ b/test/scripts/0000-Basic/0478 @@ -0,0 +1,13 @@ +# connection error on and not on queue run, with deliver_drop_privilege +need_ipv4 +# +exim -odq V4NET.0.0.1@test.ex +**** +exim -DSERVER=server -q1h -bd -oX PORT_D +**** +sleep 1 +exim -odi 127.0.0.1@test.ex +**** +sleep 1 +killdaemon +no_msglog_check diff --git a/test/scripts/0000-Basic/0479 b/test/scripts/0000-Basic/0479 new file mode 100644 index 000000000..d0c5fb03a --- /dev/null +++ b/test/scripts/0000-Basic/0479 @@ -0,0 +1,10 @@ +# verifying and rewriting sender address +need_ipv4 +# +exim -d -bh 1.2.3.4 +helo [1.2.3.4] +mail from:<a@b> +rcpt to:<c@d> +rcpt to:<e@f> +quit +**** diff --git a/test/scripts/0000-Basic/0480 b/test/scripts/0000-Basic/0480 new file mode 100644 index 000000000..cb4712bb1 --- /dev/null +++ b/test/scripts/0000-Basic/0480 @@ -0,0 +1,48 @@ +# smtp_active_hostname +need_ipv4 +# +exim -bh 1.2.3.4 -oMi V4NET.0.0.1 +helo a.b.c +quit +**** +exim -bh 1.2.3.4 -oMi V4NET.0.0.2 +helo a.b.c +quit +**** +1 +exim -bh 1.2.3.4 -oMi V4NET.0.0.3 +helo a.b.c +quit +**** +exim -bh 1.2.3.4 -oMi V4NET.0.0.4 +helo a.b.c +quit +**** +exim -DSERVER=server -DIP1=127.0.0.1 -DIP2=HOSTIPV4 -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +helo foobar +??? 250 +mail from:<> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +data +??? 354 +. +??? 250 +quit +??? 221 +**** +# Wait for it to be delivered +sleep 1 +client HOSTIPV4 PORT_D +??? 220 +helo foobar +??? 250 +quit +??? 221 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/0000-Basic/0481 b/test/scripts/0000-Basic/0481 new file mode 100644 index 000000000..3f308f992 --- /dev/null +++ b/test/scripts/0000-Basic/0481 @@ -0,0 +1,5 @@ +# remove_headers and trailing colons +exim -odi userx +Remove-Me: this header is to be removed +Another: This is another header +**** diff --git a/test/scripts/0000-Basic/0482 b/test/scripts/0000-Basic/0482 new file mode 100644 index 000000000..48a53d749 --- /dev/null +++ b/test/scripts/0000-Basic/0482 @@ -0,0 +1,24 @@ +# much space before : in header line +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +helo foobar +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +data +??? 3 +From : userx + +This is junk +. +??? 5 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/0000-Basic/0483 b/test/scripts/0000-Basic/0483 new file mode 100644 index 000000000..14e42e3b9 --- /dev/null +++ b/test/scripts/0000-Basic/0483 @@ -0,0 +1,7 @@ +# $sender_data and $recipient_data +exim -bs -d-all+route +mail from:<sender@domain1> +rcpt to:<recip@domain2> +rcpt to:<other@domain2> +quit +**** diff --git a/test/scripts/0000-Basic/0484 b/test/scripts/0000-Basic/0484 new file mode 100644 index 000000000..2c7c44bdb --- /dev/null +++ b/test/scripts/0000-Basic/0484 @@ -0,0 +1,15 @@ +# lookup caching all +exim -d -be +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{root}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{root}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} + +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases2}{$value}{NOT FOUND}} +${lookup{root}lsearch{DIR/aux-fixed/TESTNUM.aliases2}{$value}{NOT FOUND}} +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases2}{$value}{NOT FOUND}} + +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{root}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +**** diff --git a/test/scripts/0000-Basic/0485 b/test/scripts/0000-Basic/0485 new file mode 100644 index 000000000..318e5a56a --- /dev/null +++ b/test/scripts/0000-Basic/0485 @@ -0,0 +1,18 @@ +# $host_data in multiple messages in one connection +exim -odi -bs -oMa 1.2.3.4 +ehlo x.y.z +mail from:<> +rcpt to:<userx@test.ex> +data +This is a test message. +. +mail from:<> +rset +mail from:<nonnull@non.null> +rcpt to:<userx@test.ex> +data +This is a test message. +. +mail from:<third@non.null> +quit +**** diff --git a/test/scripts/0000-Basic/0486 b/test/scripts/0000-Basic/0486 new file mode 100644 index 000000000..1d834da27 --- /dev/null +++ b/test/scripts/0000-Basic/0486 @@ -0,0 +1,18 @@ +# timing of rewriting +exim -bs +ehlo x.y.z +mail from:<writer@wdomain> +rcpt to:<reader1@rdomain> +rcpt to:<reader2@rdomain> +data +from: writer@wdomain +to: reader1@rdomain, reader2@rdomain +. +mail from:<smtp-writer@wdomain> +rcpt to:<smtp-reader@rdomain> +data +from: smtp-writer@wdomain +to: smtp-reader@rdomain +. +quit +**** diff --git a/test/scripts/0000-Basic/0487 b/test/scripts/0000-Basic/0487 new file mode 100644 index 000000000..a4fc29881 --- /dev/null +++ b/test/scripts/0000-Basic/0487 @@ -0,0 +1,12 @@ +# qualification in headers with rewrite in transport +exim -d -bnq -odi -bs userx +ehlo x.y +mail from:<x@y> +rcpt to:<userx@test.ex> +data +From: unqualified + +Test message. +. +quit +**** diff --git a/test/scripts/0000-Basic/0488 b/test/scripts/0000-Basic/0488 new file mode 100644 index 000000000..e4b96b70a --- /dev/null +++ b/test/scripts/0000-Basic/0488 @@ -0,0 +1,11 @@ +# Multiple headers in one warn message +exim -odq -bs +MAIL FROM:<> +RCPT TO:<userx@test.ex> +DATA +. +QUIT +**** +exim -Mvh $msg1 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0489 b/test/scripts/0000-Basic/0489 new file mode 100644 index 000000000..a824fc8aa --- /dev/null +++ b/test/scripts/0000-Basic/0489 @@ -0,0 +1,18 @@ +# parse_fix_phrase +exim -d-all+receive -F 'Phil Q. Hazel' X +**** +exim -d-all+receive -F 'John "Jack" Smith' X +**** +exim -d-all+receive -F 'John "Jack" Q. Smith' X +**** +exim -d-all+receive -F 'John (Jack) Q. Smith' X +**** +exim -d-all+receive -F 'John ("Jack") Q. Smith' X +**** +exim -d-all+receive -F 'John (\"Jack\") Q. Smith' X +**** +exim -d-all+receive -F 'Phil \"Q Hazel' X +**** +exim -d-all+receive -F 'Phil \"Q "X." Hazel' X +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0490 b/test/scripts/0000-Basic/0490 Binary files differnew file mode 100644 index 000000000..060e270b4 --- /dev/null +++ b/test/scripts/0000-Basic/0490 diff --git a/test/scripts/0000-Basic/0491 b/test/scripts/0000-Basic/0491 new file mode 100644 index 000000000..338d76281 --- /dev/null +++ b/test/scripts/0000-Basic/0491 @@ -0,0 +1,16 @@ +# Quoting of local parts in generated From: and Sender: +exim -odi userx +**** +exim -odi -DUL=a.b userx +**** +exim -odi -DUL=.a.b userx +**** +exim -odi -DUL=a.b. userx +**** +exim -odi "-DUL=a\"b" userx +**** +exim -odi userx +From: x@y +**** +exim -odi "-DREWRITE=^([^@]+)@([^@]+)@(.*) \$1%\$2@\$3" userx +**** diff --git a/test/scripts/0000-Basic/0492 b/test/scripts/0000-Basic/0492 new file mode 100644 index 000000000..cecea5fac --- /dev/null +++ b/test/scripts/0000-Basic/0492 @@ -0,0 +1,11 @@ +# return_path_on_delivery with parallel deliveries and no deliveries +need_ipv4 +sortlog +no_stderr_check +# +exim -odi -N a@test.ex b@test.ex +**** +exim -odi -N b@test.ex a@test.ex +**** +exim -odi blackhole@test.ex +**** diff --git a/test/scripts/0000-Basic/0493 b/test/scripts/0000-Basic/0493 new file mode 100644 index 000000000..5a491b3fc --- /dev/null +++ b/test/scripts/0000-Basic/0493 @@ -0,0 +1,176 @@ +# headers_add adding to a very long header line +exim -odi a@test.ex +To: 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + 12345@some.domain.or.other, 54321@some.domain.or.other, + last@one +**** diff --git a/test/scripts/0000-Basic/0494 b/test/scripts/0000-Basic/0494 new file mode 100644 index 000000000..cb5732ddc --- /dev/null +++ b/test/scripts/0000-Basic/0494 @@ -0,0 +1,4 @@ +# never_mail in autoreply transport +exim -odi xyz@test.ex +Testing original message +**** diff --git a/test/scripts/0000-Basic/0495 b/test/scripts/0000-Basic/0495 new file mode 100644 index 000000000..a6c1dcf40 --- /dev/null +++ b/test/scripts/0000-Basic/0495 @@ -0,0 +1,219 @@ +# mua_wrapper +need_ipv4 +# +1 +exim xyz@test.ex +This should fail hard (nothing listening) +**** +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +DATA +354 OK +. +250 OK +**** +exim a@x.y b@x.y +This should succeed +**** +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +550 NOTOK +QUIT +250 OK +**** +1 +exim a@x.y b@x.y +This should not succeed (one recipient rejected) +**** +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +550 BAD MAIL +RCPT TO +550 NOTOK +RCPT TO +550 NOTOK +QUIT +250 OK +**** +1 +exim a@x.y b@x.y +This should not succeed (mail rejected) +**** +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +450 TEMPORARY MAIL FAIL +RCPT TO +450 NOTOK +RCPT TO +450 NOTOK +QUIT +250 OK +**** +1 +exim a@x.y b@x.y +This should not succeed (mail rejected, even though temporary) +**** +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +DATA +354 OK +. +250 OK +**** +exim postmaster@x.y b@x.y +This should succeed (alias to normal address) +**** +1 +exim file@x.y b@x.y +This should not succeed (alias to local delivery) +**** +1 +exim fail@x.y b@x.y +This should not succeed (alias to fail) +**** +1 +exim a@x.y defer@x.y +This should not succeed (alias to defer) +**** +1 +exim a@x.y otherhost@x.y +This should not succeed (routed to different hosts) +**** +1 +exim a@x.y addheader@x.y +This should not succeed (different headers add) +**** +# Should fail - daemon not allowed +1 +exim -bd +**** +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +DATA +354 OK +. +250 OK +**** +exim -bs +ehlo a.b +mail from:<sen@der> +rcpt to:<a@x.y> +rcpt to:<b@x.y> +data +This should succeed. +. +quit +**** +1 +exim -bs +ehlo a.b +mail from:<sen@der> +rcpt to:<a@x.y> +rcpt to:<b@x.y> +data +This should fail - nothing listening +. +quit +**** +server PORT_S 2 +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +*sleep 2 +>*eof +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +*sleep 2 +**** +1 +exim a@x.y b@x.y +This should fail because of timeouts +. +quit +**** +1 +exim badport1@z badport2@z +This should fail because of a bad port definition. +**** +server PORT_S +220 Server ready +EHLO +250-server id +250-PIPELINING +250 OK +MAIL FROM +250 OK +RCPT TO +550 SORRY +QUIT +221 BYE +**** +# Test for an empty sender +1 +exim -f '<>' a@x.y +This should fail. +**** diff --git a/test/scripts/0000-Basic/0496 b/test/scripts/0000-Basic/0496 new file mode 100644 index 000000000..ba96dc7dc --- /dev/null +++ b/test/scripts/0000-Basic/0496 @@ -0,0 +1,12 @@ +# acl adding positioned headers +exim -odi -bs +Mail From:<some@ne> +rcpt To: <someone@el.se> +data +From: some@ne +To: someone@el.se + +Testing message +. +quit +**** diff --git a/test/scripts/0000-Basic/0497 b/test/scripts/0000-Basic/0497 new file mode 100644 index 000000000..1465afec4 --- /dev/null +++ b/test/scripts/0000-Basic/0497 @@ -0,0 +1,19 @@ +# rcpt_4xx from server with no retry +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250-server id +250 OK +MAIL FROM +250 OK +RCPT TO +452 temporary error +QUIT +250 OK +**** +exim -odi userx@x.y +**** +dump retry +no_message_check diff --git a/test/scripts/0000-Basic/0498 b/test/scripts/0000-Basic/0498 new file mode 100644 index 000000000..61a4ab923 --- /dev/null +++ b/test/scripts/0000-Basic/0498 @@ -0,0 +1,39 @@ +# message error: ultimate retry when received_time = first failed time +need_ipv4 +# +server PORT_S +220 Server ready +EHLO +250-server id +250 OK +MAIL FROM +450 DELAY +QUIT +225 OK +**** +exim -odi userx@x.y +**** +dump retry +# This is messy. To test a specific bug we want to set the received time +# to be the same as the first failed time. Hacked up a perl script to do it. +# +sudo perl DIR/aux-fixed/TESTNUM.fudge +**** +sleep 2 +server PORT_S +220 Server ready +EHLO +250-server id +250 OK +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +345 OK +. +*sleep 2 +**** +exim -q +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0499 b/test/scripts/0000-Basic/0499 new file mode 100644 index 000000000..f84a662f0 --- /dev/null +++ b/test/scripts/0000-Basic/0499 @@ -0,0 +1,5 @@ +# @mx_any used in match_domains condition +need_ipv4 +# +exim -d -bt ph@mxt1.test.ex +**** diff --git a/test/scripts/0000-Basic/0500 b/test/scripts/0000-Basic/0500 new file mode 100644 index 000000000..75bffe425 --- /dev/null +++ b/test/scripts/0000-Basic/0500 @@ -0,0 +1,15 @@ +# predata ACL +exim -odi -bs +mail from:<x@y> +rcpt to:<userx@y> +data +quit +**** +exim -odi -bs +mail from:<postmaster@y> +rcpt to:<userx@y> +data +Subject: testing +. +quit +**** diff --git a/test/scripts/0000-Basic/0501 b/test/scripts/0000-Basic/0501 new file mode 100644 index 000000000..c173255cb --- /dev/null +++ b/test/scripts/0000-Basic/0501 @@ -0,0 +1,6 @@ +# control = case{ful,less}_local_part +exim -odi -bs +mail from:<x@y> +rcpt to:<Phil.Hazel@y> +quit +**** diff --git a/test/scripts/0000-Basic/0502 b/test/scripts/0000-Basic/0502 new file mode 100644 index 000000000..d4b8f0fdb --- /dev/null +++ b/test/scripts/0000-Basic/0502 @@ -0,0 +1,25 @@ +# ACL for QUIT +exim -bs +mail from:<x@y> +rcpt to:<a@y> +rcpt to:<b@y> +data +. +mail from:<x@y> +rcpt to:<c@y> +rset +mail from:<x@y> +rset +mail from:<x@y> +rcpt to:<d@y> +data +. +quit +**** +exim -bs -DLAST='deny message = Your message here' +quit +**** +exim -bs -DLAST='' +mail from:<a@b> +quit +**** diff --git a/test/scripts/0000-Basic/0503 b/test/scripts/0000-Basic/0503 new file mode 100644 index 000000000..1a42005fc --- /dev/null +++ b/test/scripts/0000-Basic/0503 @@ -0,0 +1,11 @@ +# mailbox_size +exim -odi userx +Test 1 +**** +exim -odi -DMSIZE='mailbox_size = 10K' userx +Test 2 +**** +exim -odi -DMSIZE='mailbox_size = ${if eq{1}{1}{20F}{}}' userx +test 3 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0504 b/test/scripts/0000-Basic/0504 new file mode 100644 index 000000000..a48e8b4fe --- /dev/null +++ b/test/scripts/0000-Basic/0504 @@ -0,0 +1,28 @@ +# transport filter command fails to execute +need_ipv4 +# +exim -odi userx +transport: t1 +Test 1 +**** +exim -odi userx +transport: t2 +Test 2 +**** +server PORT_S +220 Welcome +EHLO +250-Hello there +250 SIZE +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +354 Send it +**** +exim -odi userx +transport: t3 +Test 3 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0505 b/test/scripts/0000-Basic/0505 new file mode 100644 index 000000000..7059a93b5 --- /dev/null +++ b/test/scripts/0000-Basic/0505 @@ -0,0 +1,30 @@ +# check illegally placed ACL control modifiers +exim -DACL=smtp_data -DCONTROL=submission -bs +mail from:<> +rcpt to:<userx@x.y> +data +Rhubarb +. +quit +**** +exim -DACL=smtp_predata -DCONTROL=submission -bs +mail from:<> +rcpt to:<userx@x.y> +data +Rhubarb +. +quit +**** +exim -DACL=smtp_helo -DCONTROL=submission -bs +ehlo xxx +quit +**** +exim -DACL=smtp_quit -DCONTROL=freeze -bs +quit +**** +1 +exim -DACL=not_smtp -DCONTROL=enforce_sync -oep userx +**** +exim -DACL=smtp_connect -DCONTROL=queue_only -bs +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0506 b/test/scripts/0000-Basic/0506 new file mode 100644 index 000000000..ed1d7bdff --- /dev/null +++ b/test/scripts/0000-Basic/0506 @@ -0,0 +1,10 @@ +# forbid_sieve_filter and forbid_exim_filter +exim -odi sieve-filter@test.ex exim-filter@test.ex +**** +exim -DFORBID=forbid_sieve_filter -odi sieve-filter@test.ex exim-filter@test.ex +**** +exim -DFORBID=forbid_exim_filter -odi sieve-filter@test.ex exim-filter@test.ex +**** +exim -DALLOW= -odi sieve-filter@test.ex exim-filter@test.ex +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0507 b/test/scripts/0000-Basic/0507 new file mode 100644 index 000000000..d4f5bc065 --- /dev/null +++ b/test/scripts/0000-Basic/0507 @@ -0,0 +1,58 @@ +# verify = not_blind +exim -odq -bs +mail from:<> +rcpt to:<userx@dom.com> +data +To: a@b.c, himself <userx@dom.com> +. +quit +**** +exim -odq -bs +mail from:<> +rcpt to:<userx@dom.com> +data +To: a@b.c, himself <usery@dom.com> +. +quit +**** +exim -DERROR_DETAILS=smtp_return_error_details -odq -bs +mail from:<> +rcpt to:<userx@dom.com> +data +To: a@b.c, himself <usery@dom.com> +. +quit +**** +exim -odq -bs +mail from:<> +rcpt to:<userx@dom.com> +rcpt to:<usery@dom.com> +data +To: a@b.c, himself <usery@dom.com> +Cc: unqualified, userx@dom.com, x@y.z +. +quit +**** +exim -odq -bs +mail from:<> +rcpt to:<userx@dom.com> +rcpt to:<usery@dom.com> +rcpt to:<userz@dom.com> +data +To: a@b.c, himself <usery@dom.com> +Cc: unqualified, userx@dom.com, x@y.z +. +quit +**** +exim -odq -bs +mail from:<> +rcpt to:<userx@dom.com> +rcpt to:<usery@dom.com> +data +Resent-To: a@b.c, himself <usery@dom.com> +Resent-Cc: unqualified, userx@dom.com, x@y.z +To: an@other +. +quit +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0508 b/test/scripts/0000-Basic/0508 new file mode 100644 index 000000000..dede4cc7a --- /dev/null +++ b/test/scripts/0000-Basic/0508 @@ -0,0 +1,4 @@ +# errors_to and failing pipe +exim -odi -f '<>' userx +This is a test message +**** diff --git a/test/scripts/0000-Basic/0509 b/test/scripts/0000-Basic/0509 new file mode 100644 index 000000000..7fb5809d9 --- /dev/null +++ b/test/scripts/0000-Basic/0509 @@ -0,0 +1,3 @@ +# list of keys in dnslists +exim -bs +**** diff --git a/test/scripts/0000-Basic/0510 b/test/scripts/0000-Basic/0510 new file mode 100644 index 000000000..25b8a1e92 --- /dev/null +++ b/test/scripts/0000-Basic/0510 @@ -0,0 +1,8 @@ +# -bf and -bF combined +exim -bf DIR/aux-fixed/TESTNUM.ufilter -bF \ + DIR/aux-fixed/TESTNUM.sfilter -f sen@d.e.r +From: a.user@a.domain +Subject: test 1 + +Body content. +**** diff --git a/test/scripts/0000-Basic/0511 b/test/scripts/0000-Basic/0511 new file mode 100644 index 000000000..334646d6b --- /dev/null +++ b/test/scripts/0000-Basic/0511 @@ -0,0 +1,68 @@ +# very long messages from remote deliveries +need_ipv4 +# +server PORT_S +220 Welcome +EHLO +250-Hello there +250 SIZE +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +DATA +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550-This is a very long error message, very long indeed, indeed, indeed. +550 Final line. +QUIT +221 BYE +**** +exim -odi userx ph11 ph12 ph13 ph14 ph15 ph16 ph17 ph18 ph19 ph20 ph21 ph22 ph23 ph24 ph25 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0512 b/test/scripts/0000-Basic/0512 new file mode 100644 index 000000000..c33e0adba --- /dev/null +++ b/test/scripts/0000-Basic/0512 @@ -0,0 +1,15 @@ +# hosts_max_try_hardlimit +need_ipv4 +# +exim -odi userx +**** +sleep 2 +exim -d-all+transport -qf +**** +sudo rm spool/db/retry +exim -odi userx +**** +sleep 2 +exim -d-all+transport -qf -DHARDLIMIT=hosts_max_try_hardlimit=2 +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0513 b/test/scripts/0000-Basic/0513 new file mode 100644 index 000000000..ae0099eca --- /dev/null +++ b/test/scripts/0000-Basic/0513 @@ -0,0 +1,7 @@ +# $acl_verify_message +exim -bh 1.2.3.4 +ehlo a.b.c.d +mail from:<> +rcpt to:<x@mxt2.test.ex> +quit +**** diff --git a/test/scripts/0000-Basic/0514 b/test/scripts/0000-Basic/0514 new file mode 100644 index 000000000..9343ff78e --- /dev/null +++ b/test/scripts/0000-Basic/0514 @@ -0,0 +1,11 @@ +# local user name containing space +exim -odq userx +Testing +. +**** +exim -d -bp +**** +exim -Mvh $msg1 +**** +exim -q +**** diff --git a/test/scripts/0000-Basic/0515 b/test/scripts/0000-Basic/0515 new file mode 100644 index 000000000..54dae445c --- /dev/null +++ b/test/scripts/0000-Basic/0515 @@ -0,0 +1,4 @@ +# "unseen" combined with "one_time" +1 +exim -q +**** diff --git a/test/scripts/0000-Basic/0516 b/test/scripts/0000-Basic/0516 new file mode 100644 index 000000000..f80a75fd2 --- /dev/null +++ b/test/scripts/0000-Basic/0516 @@ -0,0 +1,8 @@ +# homonymic batched addresses with defer (stop duplicate delivery) +exim -odi toplevel +**** +exim -qf +**** +exim -qf +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0517 b/test/scripts/0000-Basic/0517 new file mode 100644 index 000000000..44e0c7633 --- /dev/null +++ b/test/scripts/0000-Basic/0517 @@ -0,0 +1,15 @@ +# control = suppress_local_fixups +exim -odi -bs +mail from:<> +rcpt to:<userx@dom.com> +data +. +quit +**** +exim -odi -bs +mail from:<> +rcpt to:<usery@dom.com> +data +. +quit +**** diff --git a/test/scripts/0000-Basic/0518 b/test/scripts/0000-Basic/0518 new file mode 100644 index 000000000..1a6da0129 --- /dev/null +++ b/test/scripts/0000-Basic/0518 @@ -0,0 +1,96 @@ +# Affixes in RCPT commands for recipient callouts +need_ipv4 +# +server PORT_S 8 +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +*eof +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +QUIT +250 OK +**** +exim -odq -bs +mail from:<> +RCPT TO:<abc@include> +RCPT TO:<abc@exclude> +RCPT TO:<p+abc@include> +RCPT TO:<p+abc@exclude> +RCPT TO:<abc-s@include> +RCPT TO:<abc-s@exclude> +RCPT TO:<p+abc-s@include> +RCPT TO:<p+abc-s@exclude> +quit +**** diff --git a/test/scripts/0000-Basic/0519 b/test/scripts/0000-Basic/0519 new file mode 100644 index 000000000..4c3a6cfbe --- /dev/null +++ b/test/scripts/0000-Basic/0519 @@ -0,0 +1,5 @@ +# Missing IP addresses for 2nd host in smtp router +need_ipv4 +# +exim -odi userx +**** diff --git a/test/scripts/0000-Basic/0520 b/test/scripts/0000-Basic/0520 new file mode 100644 index 000000000..1954e8eec --- /dev/null +++ b/test/scripts/0000-Basic/0520 @@ -0,0 +1,5 @@ +# Duplicate addresses that depend on previous routing (1) +exim -odi bob alice +**** +exim -odi alice bob +**** diff --git a/test/scripts/0000-Basic/0521 b/test/scripts/0000-Basic/0521 new file mode 100644 index 000000000..56c804cf2 --- /dev/null +++ b/test/scripts/0000-Basic/0521 @@ -0,0 +1,3 @@ +# Duplicate addresses that depend on previous routing (2) +exim -odi abc xyz +**** diff --git a/test/scripts/0000-Basic/0522 b/test/scripts/0000-Basic/0522 new file mode 100644 index 000000000..e3efa2ee6 --- /dev/null +++ b/test/scripts/0000-Basic/0522 @@ -0,0 +1,10 @@ +# Timeouts in pipe with and without a transport filter +exim -odi nofilter +**** +exim -odi filter +**** +exim -DTIMEOUTDEFER=timeout_defer -odi nofilter +**** +exim -DTIMEOUTDEFER=timeout_defer -odi filter +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0523 b/test/scripts/0000-Basic/0523 new file mode 100644 index 000000000..eae8d4723 --- /dev/null +++ b/test/scripts/0000-Basic/0523 @@ -0,0 +1,3 @@ +# Multiple headers_add in router +exim -odi one two three four +**** diff --git a/test/scripts/0000-Basic/0524 b/test/scripts/0000-Basic/0524 new file mode 100644 index 000000000..245c3d0a1 --- /dev/null +++ b/test/scripts/0000-Basic/0524 @@ -0,0 +1,17 @@ +# Simple CSA test +exim -bh V4NET.9.8.7 +ehlo csa1.test.ex +mail from:<> +rset +ehlo csa2.test.ex +mail from:<> +quit +**** +exim -bh V4NET.9.8.8 +ehlo csa1.test.ex +mail from:<> +rset +ehlo csa2.test.ex +mail from:<> +quit +**** diff --git a/test/scripts/0000-Basic/0525 b/test/scripts/0000-Basic/0525 new file mode 100644 index 000000000..11b8784eb --- /dev/null +++ b/test/scripts/0000-Basic/0525 @@ -0,0 +1,26 @@ +# Timeout while actually writing the data for a message +need_ipv4 +# +server PORT_S +220 Welcome +EHLO +250 Hi +MAIL FROM +250 OK +RCPT TO +250 OK +DATA +354 SEND +*sleep 3 +**** +write test-data 20000x80 +mail from:<abc@xyz> +RCPT TO:<def@pqr> +DATA +++++ +. +quit +**** +exim -v -odi -bs <test-data +**** +no_msglog_check diff --git a/test/scripts/0000-Basic/0526 b/test/scripts/0000-Basic/0526 new file mode 100644 index 000000000..053f0ae25 --- /dev/null +++ b/test/scripts/0000-Basic/0526 @@ -0,0 +1,4 @@ +# def:variable with a value of "0" +exim -bs +quit +**** diff --git a/test/scripts/0000-Basic/0527 b/test/scripts/0000-Basic/0527 new file mode 100644 index 000000000..e65032b4d --- /dev/null +++ b/test/scripts/0000-Basic/0527 @@ -0,0 +1,19 @@ +# callout with no transport +need_ipv4 +# +server PORT_S +220 Welcome +HELO +250 Hi +MAIL FROM +250 OK +RCPT TO +550 unrouteable address +QUIT +221 Bye +**** +exim -bs +mail from:<unknown@x.x.x.x> +rcpt to:<unknown@u.u.u.u> +quit +**** diff --git a/test/scripts/0000-Basic/0528 b/test/scripts/0000-Basic/0528 new file mode 100644 index 000000000..0f640e87f --- /dev/null +++ b/test/scripts/0000-Basic/0528 @@ -0,0 +1,8 @@ +# port specifications in list of hosts +need_ipv4 +# +exim -bt x@y +**** +exim -odi x@y +**** +no_msglog_check diff --git a/test/scripts/1000-Basic-ipv6/1000 b/test/scripts/1000-Basic-ipv6/1000 new file mode 100644 index 000000000..8788da94b --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/1000 @@ -0,0 +1,7 @@ +# -bh and non-canonical IPv6 addresses +exim -bh 2001:ab8:37f:20::1.999 +**** +exim -DHL=host_lookup=* -bh V6NET:1234:5:6:7:8:abc:0d +**** +exim -bh V6NET:ffff:836f:0a00:000a:0800:200a:c032 +**** diff --git a/test/scripts/1000-Basic-ipv6/1001 b/test/scripts/1000-Basic-ipv6/1001 new file mode 100644 index 000000000..282c7eb8c --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/1001 @@ -0,0 +1,67 @@ +# recognizing IPv6 address in HELO/EHLO +need_ipv6 +# +# Incoming messages will be queued; deliver by queue run at the end. +# +exim -DSERVER=server -bd -oX PORT_D +**** +client HOSTIPV6 PORT_D +??? 220 +ehlo [HOSTIPV6] +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +data +??? 354 +To: userx@test.ex + +EHLO [HOSTIPV6] +. +??? 250 +ehlo [IPV6:HOSTIPV6] +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +data +??? 354 +To: userx@test.ex + +EHLO [IPV6:HOSTIPV6] +. +??? 250 +ehlo [IPV6:V6NET:0:12:1:a00:20ff:fe86:a062] +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +data +??? 354 +To: userx@test.ex + +EHLO [IPV6:V6NET:0:12:1:a00:20ff:fe86:a062] +. +??? 250 +ehlo HOSTIPV6 +??? 501 +quit +??? 221 +**** +killdaemon +# Wait for delivery process +millisleep 500 +exim -q +**** diff --git a/test/scripts/1000-Basic-ipv6/1002 b/test/scripts/1000-Basic-ipv6/1002 new file mode 100644 index 000000000..c9a8b3f22 --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/1002 @@ -0,0 +1,7 @@ +# @ items in domain lists and host lists +exim -bh V4NET.1.1.1 +mail from:<x@y> +rcpt to:<1@[::1]> +rcpt to:<6@mxt11a.test.ex> +quit +**** diff --git a/test/scripts/1000-Basic-ipv6/1003 b/test/scripts/1000-Basic-ipv6/1003 new file mode 100644 index 000000000..646b1b4a3 --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/1003 @@ -0,0 +1,30 @@ +# interface selection (v4 vs v6) in outgoing SMTP +need_ipv4 +need_ipv6 +# +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +hosts: 127.0.0.1 +interface: <; ::1 ; HOSTIPV4 +**** +exim userx@test.ex +hosts: <; ::1 +interface: <; HOSTIPV6 ; HOSTIPV4 +**** +exim userx@test.ex +hosts: <; ::1 +interface: <; ${if eq{0}{1}{HOSTIPV6}fail} +**** +exim userx@test.ex +hosts: <; ::1 +interface: <; ${if eq{0}{1}{HOSTIPV6}{ }} +**** +exim userx@test.ex +hosts: <; ::1 +interface: <; ${if +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/1000-Basic-ipv6/1005 b/test/scripts/1000-Basic-ipv6/1005 new file mode 100644 index 000000000..e4af6713c --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/1005 @@ -0,0 +1,7 @@ +# dns_ipv4_lookup and gethostbyname +need_ipv4 +need_ipv6 +# +1 +exim -bt userx@eximtesthost.ipv6.test.ex +**** diff --git a/test/scripts/1000-Basic-ipv6/1006 b/test/scripts/1000-Basic-ipv6/1006 new file mode 100644 index 000000000..365d1c68c --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/1006 @@ -0,0 +1,27 @@ +# disable_ipv6 +need_ipv4 +need_ipv6 +# +exim -d-all+dns -bt dnslookup@mx46.test.ex \ + manualroute@test.ex \ + dnslookup@v6.test.ex +**** +2 +exim -DD6=disable_ipv6 -d-all+dns -bt dnslookup@mx46.test.ex \ + manualroute@test.ex \ + dnslookup@v6.test.ex +**** +exim -DSERVER=server -bd -oX PORT_D +**** +client HOSTIPV6 PORT_D +??? 220 +quit +??? 221 +**** +killdaemon +exim -DSERVER=server -DD6=disable_ipv6 -bd -oX PORT_D +**** +1 +client HOSTIPV6 PORT_D +**** +killdaemon diff --git a/test/scripts/1000-Basic-ipv6/1007 b/test/scripts/1000-Basic-ipv6/1007 new file mode 100644 index 000000000..9a2cbd638 --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/1007 @@ -0,0 +1,28 @@ +# local_interfaces, daemon_smtp_port, and -oX interactions +need_ipv4 +need_ipv6 +# +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D +**** +killdaemon +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D:PORT_D2 +**** +killdaemon +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D:PORT_D2 -DIFACE='local_interfaces = <; ::0 ; 127.0.0.1.PORT_D4 ; 0.0.0.0' +**** +killdaemon +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D:PORT_D2 -DIFACE='local_interfaces = <; 0.0.0.0; 127.0.0.1.PORT_D4 ; ::0' +**** +killdaemon +exim -d -bd -DSERVER=server -DPORT=daemon_smtp_port=PORT_D:PORT_D2 -DIFACE='local_interfaces = <; HOSTIPV6' +**** +killdaemon +exim -d -bd -DSERVER=server -oX PORT_D3 -DPORT=daemon_smtp_port=PORT_D:PORT_D2 -DIFACE='local_interfaces = <; ::0 ; 127.0.0.1.PORT_D4 ; 0.0.0.0' +**** +killdaemon +exim -d -bd -DSERVER=server -oX '<; PORT_D3;PORT_D;127.0.0.1' -DPORT=daemon_smtp_port=PORT_D:PORT_D2 -DIFACE='local_interfaces = <; ::0 ; 127.0.0.1.PORT_D4 ; 0.0.0.0' +**** +killdaemon +exim -d -bd -DSERVER=server -oX '<; ::0.PORT_D; 0.0.0.0.PORT_D;0.0.0.0.PORT_D2' +**** +killdaemon diff --git a/test/scripts/1000-Basic-ipv6/1008 b/test/scripts/1000-Basic-ipv6/1008 new file mode 100644 index 000000000..a91252af5 --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/1008 @@ -0,0 +1,28 @@ +# exinext and ports/message-ids and IPv6 +need_ipv4 +# +server PORT_S 2 +220 Server ready +EHLO +250-server id +250 OK +MAIL FROM +450 Temporary error +QUIT +250 OK +*eof +220 Server ready +EHLO +250-server id +250 OK +MAIL FROM +450 Temporary error +QUIT +250 OK +**** +exim -odi userx@test.ex +**** +dump retry +exinext 127.0.0.1 +exinext ::1 +no_msglog_check diff --git a/test/scripts/1000-Basic-ipv6/REQUIRES b/test/scripts/1000-Basic-ipv6/REQUIRES new file mode 100644 index 000000000..2923dcae2 --- /dev/null +++ b/test/scripts/1000-Basic-ipv6/REQUIRES @@ -0,0 +1 @@ +support IPv6 diff --git a/test/scripts/2000-GnuTLS/2000 b/test/scripts/2000-GnuTLS/2000 new file mode 100644 index 000000000..60afb52b4 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2000 @@ -0,0 +1,16 @@ +# TLS client: TLS setup fails - retry in clear +# +# For this first GnuTLS test, we do not obey "gnutls", so that Exim has to +# create the GnuTLS paramter data for itself. +# +echo ==> Creating GnuTLS parameter data ... may take some time ... +echo ==> Moving the mouse about may help ... +exim -DSERVER=server -bd -oX PORT_D +**** +exim CALLER@test.ex +Testing +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2001 b/test/scripts/2000-GnuTLS/2001 new file mode 100644 index 000000000..cf1611a15 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2001 @@ -0,0 +1,13 @@ +# TLS client: TLS setup fails - don't retry in clear +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim CALLER@test.ex +Testing +**** +exim -DOPTION=hosts_require_tls=127.0.0.1 -qf +**** +exim -DOPTION=tls_tempfail_tryclear=false -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2002 b/test/scripts/2000-GnuTLS/2002 new file mode 100644 index 000000000..9c7ad0ff0 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2002 @@ -0,0 +1,66 @@ +# TLS server: general +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<CALLER@test.ex> +??? 250 +rcpt to:<CALLER@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message. +. +??? 250 +quit +??? 221 +**** +client-gnutls HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +client-gnutls HOSTIPV4 PORT_D DIR/aux-fixed/cert2 DIR/aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<CALLER@test.ex> +??? 250 +rcpt to:<CALLER@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message from a verified host. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** +exim -bh 10.0.0.1 +starttls +quit +**** diff --git a/test/scripts/2000-GnuTLS/2003 b/test/scripts/2000-GnuTLS/2003 new file mode 100644 index 000000000..2e8eeae5f --- /dev/null +++ b/test/scripts/2000-GnuTLS/2003 @@ -0,0 +1,48 @@ +# TLS server: unavailable cipher +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +quit +??? 221 +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +helo rhu.barb +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** diff --git a/test/scripts/2000-GnuTLS/2004 b/test/scripts/2000-GnuTLS/2004 new file mode 100644 index 000000000..4cdcab48f --- /dev/null +++ b/test/scripts/2000-GnuTLS/2004 @@ -0,0 +1,42 @@ +# TLS server: TLS required +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +quit +??? 221 +**** +client-gnutls HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test unencrypted message. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** diff --git a/test/scripts/2000-GnuTLS/2005 b/test/scripts/2000-GnuTLS/2005 new file mode 100644 index 000000000..333f8bc6a --- /dev/null +++ b/test/scripts/2000-GnuTLS/2005 @@ -0,0 +1,28 @@ +# TLS server: accept for relay if encrypted +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@remote.test.ex> +??? 550 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@remote.test.ex> +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** diff --git a/test/scripts/2000-GnuTLS/2006 b/test/scripts/2000-GnuTLS/2006 new file mode 100644 index 000000000..7fd89dc3f --- /dev/null +++ b/test/scripts/2000-GnuTLS/2006 @@ -0,0 +1,17 @@ +# TLS server: timeout in TLS session +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 ++++ 3 +**** +killdaemon diff --git a/test/scripts/2000-GnuTLS/2007 b/test/scripts/2000-GnuTLS/2007 new file mode 100644 index 000000000..280c426d2 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2007 @@ -0,0 +1,11 @@ +# TLS client: log_smtp_confirmation +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2008 b/test/scripts/2000-GnuTLS/2008 new file mode 100644 index 000000000..f22086a76 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2008 @@ -0,0 +1,15 @@ +# TLS client: general +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim CALLER@test.ex +Test message. Contains FF: ÿ +**** +exim CALLER@test.ex abcd@test.ex xyz@test.ex +Test message to two different hosts +**** +exim -v -qf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2000-GnuTLS/2009 b/test/scripts/2000-GnuTLS/2009 new file mode 100644 index 000000000..69eb61d07 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2009 @@ -0,0 +1,11 @@ +# TLS client: hosts_avoid_tls +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2010 b/test/scripts/2000-GnuTLS/2010 new file mode 100644 index 000000000..06e259567 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2010 @@ -0,0 +1,11 @@ +# TLS client: hosts_require_tls +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2011 b/test/scripts/2000-GnuTLS/2011 new file mode 100644 index 000000000..4e48ebce6 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2011 @@ -0,0 +1,11 @@ +# TLS client: require_ciphers +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Testing +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2012 b/test/scripts/2000-GnuTLS/2012 new file mode 100644 index 000000000..e86bf1707 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2012 @@ -0,0 +1,11 @@ +# TLS client: verify certificate from server - fails +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Testing +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2013 b/test/scripts/2000-GnuTLS/2013 new file mode 100644 index 000000000..ef34a6677 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2013 @@ -0,0 +1,15 @@ +# TLS client: multiple messages over one connection +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message 1 +**** +exim userx@test.ex +Test message 2 +**** +exim -qqf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2000-GnuTLS/2014 b/test/scripts/2000-GnuTLS/2014 new file mode 100644 index 000000000..21b703c38 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2014 @@ -0,0 +1,138 @@ +# TLS server: mandatory, optional, and revoked certificates +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +# No certificate, certificate required +client-gnutls HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +# No certificate, certificate optional at TLS time, required by ACL +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +helo rhu.barb +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +quit +??? 221 +**** +# Good certificate, certificate required +client-gnutls HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +quit +??? 221 +**** +# Good certificate, certificate optional at TLS time, checked by ACL +client-gnutls 127.0.0.1 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +quit +??? 221 +**** +# Bad certificate, certificate required +client-gnutls HOSTIPV4 PORT_D aux-fixed/cert1 aux-fixed/cert1 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +# Bad certificate, certificate optional at TLS time, reject at ACL time +client-gnutls 127.0.0.1 PORT_D aux-fixed/cert1 aux-fixed/cert1 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550- +??? 550 +quit +??? 221 +**** +killdaemon +exim -DCRL=DIR/aux-fixed/crl.pem -DSERVER=server -bd -oX PORT_D +**** +# Good but revoked certificate, certificate required +client-gnutls HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +# Revoked certificate, certificate optional at TLS time, reject at ACL time +client-gnutls 127.0.0.1 PORT_D aux-fixed/cert1 aux-fixed/cert1 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550- +??? 550 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/2000-GnuTLS/2015 b/test/scripts/2000-GnuTLS/2015 new file mode 100644 index 000000000..a03bf9b51 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2015 @@ -0,0 +1,18 @@ +# TLS server: timeout after accepting STARTTLS +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls_wait +??? 220 ++++ 2 +??? 421 +**** +killdaemon diff --git a/test/scripts/2000-GnuTLS/2016 b/test/scripts/2000-GnuTLS/2016 new file mode 100644 index 000000000..2da309d68 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2016 @@ -0,0 +1,16 @@ +# TLS client: timeout while setting up TLS +gnutls +server PORT_S +220 ESMTP +EHLO +250-OK +250-STARTTLS +250 HELP +STARTTLS +220 Go ahead +*sleep 2 +**** +exim -odi userx@domain1 +Test message +**** +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2017 b/test/scripts/2000-GnuTLS/2017 new file mode 100644 index 000000000..af08df0b1 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2017 @@ -0,0 +1,15 @@ +# TLS client: hosts_nopass_tls +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message 1 +**** +exim userx@test.ex +Test message 2 +**** +exim -qqf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2000-GnuTLS/2018 b/test/scripts/2000-GnuTLS/2018 new file mode 100644 index 000000000..6f67615a5 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2018 @@ -0,0 +1,43 @@ +# TLS: ACL encryption test +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message. +. +??? 250 +quit +??? 221 +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +quit +??? 221 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2019 b/test/scripts/2000-GnuTLS/2019 new file mode 100644 index 000000000..28d2de0ef --- /dev/null +++ b/test/scripts/2000-GnuTLS/2019 @@ -0,0 +1,40 @@ +# TLS server: -tls-on-connect +gnutls +exim -DSERVER=server -tls-on-connect -bd -oX PORT_D +**** +client-gnutls -tls-on-connect 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message. +. +??? 250 +quit +??? 221 +**** +client-gnutls -tls-on-connect HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message from a verified host. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** diff --git a/test/scripts/2000-GnuTLS/2020 b/test/scripts/2000-GnuTLS/2020 new file mode 100644 index 000000000..bd00740bf --- /dev/null +++ b/test/scripts/2000-GnuTLS/2020 @@ -0,0 +1,11 @@ +# TLS server: no certificate defined, client sends in clear +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx +Test +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2021 b/test/scripts/2000-GnuTLS/2021 new file mode 100644 index 000000000..5c402ce2c --- /dev/null +++ b/test/scripts/2000-GnuTLS/2021 @@ -0,0 +1,53 @@ +# TLS client: 4xx response to STARTTLS +gnutls +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250-STARTTLS +250 PIPELINING +STARTTLS +450 temp problem +QUIT +250 OK +**** +exim -DTRYCLEAR=tls_tempfail_tryclear=false -odi x@y +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250-STARTTLS +250 PIPELINING +STARTTLS +450 temp problem +MAIL FROM: +250 OK +RCPT TO: +250 OK +DATA +354 Go ahead +. +250 OK +QUIT +250 OK +**** +exim -qf +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250-STARTTLS +250 PIPELINING +STARTTLS +450 temp problem +QUIT +250 OK +**** +exim -DREQUIRE=hosts_require_tls=* -odi x@y +**** +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2022 b/test/scripts/2000-GnuTLS/2022 new file mode 100644 index 000000000..4a3d53339 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2022 @@ -0,0 +1,21 @@ +# TLS server: help command in encrypted session +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +help +??? 214- +??? 214 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/2000-GnuTLS/2023 b/test/scripts/2000-GnuTLS/2023 new file mode 100644 index 000000000..395fcdcde --- /dev/null +++ b/test/scripts/2000-GnuTLS/2023 @@ -0,0 +1,7 @@ +# TLS: ACL for STARTTLS +gnutls +exim -bs -oMa 10.9.8.10 +ehlo a.b.c +starttls +quit +**** diff --git a/test/scripts/2000-GnuTLS/2024 b/test/scripts/2000-GnuTLS/2024 new file mode 100644 index 000000000..46b93d413 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2024 @@ -0,0 +1,30 @@ +# TLS server: empty/non-existent certificate file +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +killdaemon +exim -DSERVER=server -DCERT=/non/exist -bd -oX PORT_D +**** +client-gnutls HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 454 +**** +killdaemon diff --git a/test/scripts/2000-GnuTLS/2025 b/test/scripts/2000-GnuTLS/2025 new file mode 100644 index 000000000..38ffccf84 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2025 @@ -0,0 +1,11 @@ +# TLS server: tls_require_ciphers +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Testing +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/2026 b/test/scripts/2000-GnuTLS/2026 new file mode 100644 index 000000000..18361c62f --- /dev/null +++ b/test/scripts/2000-GnuTLS/2026 @@ -0,0 +1,9 @@ +# TLS: logging parameters for 2 different recipients +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim -odi userx usery +**** +# Wait to allow delivery to finish before killing the daemon +sleep 1 +killdaemon diff --git a/test/scripts/2000-GnuTLS/2027 b/test/scripts/2000-GnuTLS/2027 new file mode 100644 index 000000000..5d713121d --- /dev/null +++ b/test/scripts/2000-GnuTLS/2027 @@ -0,0 +1,15 @@ +# TLS server & client: no certificate in client +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim usery@test.ex +Test message +**** +exim -qf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2000-GnuTLS/2028 b/test/scripts/2000-GnuTLS/2028 new file mode 100644 index 000000000..64855c2a9 --- /dev/null +++ b/test/scripts/2000-GnuTLS/2028 @@ -0,0 +1,31 @@ +# tls_on_connect_ports +need_ipv4 +# +gnutls +exim -DSERVER=server -bd -oX PORT_D:PORT_D2:PORT_D3 +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +quit +??? 221 +**** +client-gnutls -tls-on-connect 127.0.0.1 PORT_D2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +quit +??? 221 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2000-GnuTLS/REQUIRES b/test/scripts/2000-GnuTLS/REQUIRES new file mode 100644 index 000000000..d21ee471d --- /dev/null +++ b/test/scripts/2000-GnuTLS/REQUIRES @@ -0,0 +1,2 @@ +support GnuTLS +running IPv4 diff --git a/test/scripts/2100-OpenSSL/2100 b/test/scripts/2100-OpenSSL/2100 new file mode 100644 index 000000000..c2b0f8981 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2100 @@ -0,0 +1,10 @@ +# TLS client: TLS setup fails - retry in clear +exim -DSERVER=server -bd -oX PORT_D +**** +exim CALLER@test.ex +Testing +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2101 b/test/scripts/2100-OpenSSL/2101 new file mode 100644 index 000000000..824503e92 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2101 @@ -0,0 +1,12 @@ +# TLS client: TLS setup fails - don't retry in clear +exim -DSERVER=server -bd -oX PORT_D +**** +exim CALLER@test.ex +Testing +**** +exim -DOPTION=hosts_require_tls=127.0.0.1 -qf +**** +exim -DOPTION=tls_tempfail_tryclear=false -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2102 b/test/scripts/2100-OpenSSL/2102 new file mode 100644 index 000000000..50fa905c3 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2102 @@ -0,0 +1,65 @@ +# TLS server: general +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<CALLER@test.ex> +??? 250 +rcpt to:<CALLER@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message. +. +??? 250 +quit +??? 221 +**** +client-ssl HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +client-ssl HOSTIPV4 PORT_D DIR/aux-fixed/cert2 DIR/aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<CALLER@test.ex> +??? 250 +rcpt to:<CALLER@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message from a verified host. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** +exim -bh 10.0.0.1 +starttls +quit +**** diff --git a/test/scripts/2100-OpenSSL/2103 b/test/scripts/2100-OpenSSL/2103 new file mode 100644 index 000000000..c108d027e --- /dev/null +++ b/test/scripts/2100-OpenSSL/2103 @@ -0,0 +1,47 @@ +# TLS server: unavailable cipher +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +quit +??? 221 +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +helo rhu.barb +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** diff --git a/test/scripts/2100-OpenSSL/2104 b/test/scripts/2100-OpenSSL/2104 new file mode 100644 index 000000000..ddf4546fe --- /dev/null +++ b/test/scripts/2100-OpenSSL/2104 @@ -0,0 +1,41 @@ +# TLS server: TLS required +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +quit +??? 221 +**** +client-ssl HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test unencrypted message. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** diff --git a/test/scripts/2100-OpenSSL/2105 b/test/scripts/2100-OpenSSL/2105 new file mode 100644 index 000000000..96321f108 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2105 @@ -0,0 +1,27 @@ +# TLS server: accept for relay if encrypted +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@remote.test.ex> +??? 550 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@remote.test.ex> +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** diff --git a/test/scripts/2100-OpenSSL/2106 b/test/scripts/2100-OpenSSL/2106 new file mode 100644 index 000000000..518c4be36 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2106 @@ -0,0 +1,16 @@ +# TLS server: timeout in TLS session +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 ++++ 3 +**** +killdaemon diff --git a/test/scripts/2100-OpenSSL/2107 b/test/scripts/2100-OpenSSL/2107 new file mode 100644 index 000000000..9317a5e86 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2107 @@ -0,0 +1,10 @@ +# TLS client: log_smtp_confirmation +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2108 b/test/scripts/2100-OpenSSL/2108 new file mode 100644 index 000000000..43ca6cff0 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2108 @@ -0,0 +1,14 @@ +# TLS client: general +exim -DSERVER=server -bd -oX PORT_D +**** +exim CALLER@test.ex +Test message. Contains FF: ÿ +**** +exim CALLER@test.ex abcd@test.ex xyz@test.ex +Test message to two different hosts +**** +exim -v -qf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2100-OpenSSL/2109 b/test/scripts/2100-OpenSSL/2109 new file mode 100644 index 000000000..85cb1300c --- /dev/null +++ b/test/scripts/2100-OpenSSL/2109 @@ -0,0 +1,10 @@ +# TLS client: hosts_avoid_tls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2110 b/test/scripts/2100-OpenSSL/2110 new file mode 100644 index 000000000..fe197fabd --- /dev/null +++ b/test/scripts/2100-OpenSSL/2110 @@ -0,0 +1,10 @@ +# TLS client: hosts_require_tls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2111 b/test/scripts/2100-OpenSSL/2111 new file mode 100644 index 000000000..516aa8292 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2111 @@ -0,0 +1,10 @@ +# TLS client: require_ciphers +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Testing +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2112 b/test/scripts/2100-OpenSSL/2112 new file mode 100644 index 000000000..4793929bc --- /dev/null +++ b/test/scripts/2100-OpenSSL/2112 @@ -0,0 +1,10 @@ +# TLS client: verify certificate from server - fails +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Testing +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2113 b/test/scripts/2100-OpenSSL/2113 new file mode 100644 index 000000000..292b4086a --- /dev/null +++ b/test/scripts/2100-OpenSSL/2113 @@ -0,0 +1,14 @@ +# TLS client: multiple messages over one connection +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message 1 +**** +exim userx@test.ex +Test message 2 +**** +exim -qqf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2100-OpenSSL/2114 b/test/scripts/2100-OpenSSL/2114 new file mode 100644 index 000000000..f671da4a4 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2114 @@ -0,0 +1,137 @@ +# TLS server: mandatory, optional, and revoked certificates +exim -DSERVER=server -bd -oX PORT_D +**** +# No certificate, certificate required +client-ssl HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +# No certificate, certificate optional at TLS time, required by ACL +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +helo rhu.barb +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +quit +??? 221 +**** +# Good certificate, certificate required +client-ssl HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +quit +??? 221 +**** +# Good certificate, certificate optional at TLS time, checked by ACL +client-ssl 127.0.0.1 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +quit +??? 221 +**** +# Bad certificate, certificate required +client-ssl HOSTIPV4 PORT_D aux-fixed/cert1 aux-fixed/cert1 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +# Bad certificate, certificate optional at TLS time, reject at ACL time +client-ssl 127.0.0.1 PORT_D aux-fixed/cert1 aux-fixed/cert1 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550- +??? 550 +quit +??? 221 +**** +killdaemon +exim -DCRL=DIR/aux-fixed/crl.pem -DSERVER=server -bd -oX PORT_D +**** +# Good but revoked certificate, certificate required +client-ssl HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +# Revoked certificate, certificate optional at TLS time, reject at ACL time +client-ssl 127.0.0.1 PORT_D aux-fixed/cert1 aux-fixed/cert1 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550- +??? 550 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/2100-OpenSSL/2115 b/test/scripts/2100-OpenSSL/2115 new file mode 100644 index 000000000..b77fd9227 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2115 @@ -0,0 +1,17 @@ +# TLS server: timeout after accepting STARTTLS +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls_wait +??? 220 ++++ 2 +??? 421 +**** +killdaemon diff --git a/test/scripts/2100-OpenSSL/2116 b/test/scripts/2100-OpenSSL/2116 new file mode 100644 index 000000000..a11125bfb --- /dev/null +++ b/test/scripts/2100-OpenSSL/2116 @@ -0,0 +1,15 @@ +# TLS client: timeout while setting up TLS +server PORT_S +220 ESMTP +EHLO +250-OK +250-STARTTLS +250 HELP +STARTTLS +220 Go ahead +*sleep 2 +**** +exim -odi userx@domain1 +Test message +**** +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2117 b/test/scripts/2100-OpenSSL/2117 new file mode 100644 index 000000000..2d7bffff1 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2117 @@ -0,0 +1,14 @@ +# TLS client: hosts_nopass_tls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message 1 +**** +exim userx@test.ex +Test message 2 +**** +exim -qqf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2100-OpenSSL/2118 b/test/scripts/2100-OpenSSL/2118 new file mode 100644 index 000000000..c612f085c --- /dev/null +++ b/test/scripts/2100-OpenSSL/2118 @@ -0,0 +1,42 @@ +# TLS: ACL encryption test +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message. +. +??? 250 +quit +??? 221 +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 550 +quit +??? 221 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2119 b/test/scripts/2100-OpenSSL/2119 new file mode 100644 index 000000000..d0fa719ca --- /dev/null +++ b/test/scripts/2100-OpenSSL/2119 @@ -0,0 +1,39 @@ +# TLS server: -tls-on-connect +exim -DSERVER=server -tls-on-connect -bd -oX PORT_D +**** +client-ssl -tls-on-connect 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message. +. +??? 250 +quit +??? 221 +**** +client-ssl -tls-on-connect HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +mail from:<userx@test.ex> +??? 250 +rcpt to:<userx@test.ex> +??? 250 +DATA +??? 3 +This is a test encrypted message from a verified host. +. +??? 250 +quit +??? 221 +**** +killdaemon +exim -qf +**** diff --git a/test/scripts/2100-OpenSSL/2120 b/test/scripts/2100-OpenSSL/2120 new file mode 100644 index 000000000..7e0aa1e0e --- /dev/null +++ b/test/scripts/2100-OpenSSL/2120 @@ -0,0 +1,10 @@ +# TLS server: no certificate defined, client sends in clear +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx +Test +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2121 b/test/scripts/2100-OpenSSL/2121 new file mode 100644 index 000000000..49ee4c14e --- /dev/null +++ b/test/scripts/2100-OpenSSL/2121 @@ -0,0 +1,52 @@ +# TLS client: 4xx response to STARTTLS +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250-STARTTLS +250 PIPELINING +STARTTLS +450 temp problem +QUIT +250 OK +**** +exim -DTRYCLEAR=tls_tempfail_tryclear=false -odi x@y +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250-STARTTLS +250 PIPELINING +STARTTLS +450 temp problem +MAIL FROM: +250 OK +RCPT TO: +250 OK +DATA +354 Go ahead +. +250 OK +QUIT +250 OK +**** +exim -qf +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250-STARTTLS +250 PIPELINING +STARTTLS +450 temp problem +QUIT +250 OK +**** +exim -DREQUIRE=hosts_require_tls=* -odi x@y +**** +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2122 b/test/scripts/2100-OpenSSL/2122 new file mode 100644 index 000000000..f1b1d355f --- /dev/null +++ b/test/scripts/2100-OpenSSL/2122 @@ -0,0 +1,20 @@ +# TLS server: help command in encrypted session +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl HOSTIPV4 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +help +??? 214- +??? 214 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/2100-OpenSSL/2123 b/test/scripts/2100-OpenSSL/2123 new file mode 100644 index 000000000..927c266c6 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2123 @@ -0,0 +1,6 @@ +# TLS: ACL for STARTTLS +exim -bs -oMa 10.9.8.10 +ehlo a.b.c +starttls +quit +**** diff --git a/test/scripts/2100-OpenSSL/2124 b/test/scripts/2100-OpenSSL/2124 new file mode 100644 index 000000000..420f6ccdf --- /dev/null +++ b/test/scripts/2100-OpenSSL/2124 @@ -0,0 +1,29 @@ +# TLS server: empty/non-existent certificate file +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +**** +killdaemon +exim -DSERVER=server -DCERT=/non/exist -bd -oX PORT_D +**** +client-ssl HOSTIPV4 PORT_D aux-fixed/cert2 aux-fixed/cert2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 454 +**** +killdaemon diff --git a/test/scripts/2100-OpenSSL/2125 b/test/scripts/2100-OpenSSL/2125 new file mode 100644 index 000000000..1899c4564 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2125 @@ -0,0 +1,10 @@ +# TLS server: tls_require_ciphers +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Testing +**** +exim -qf +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2126 b/test/scripts/2100-OpenSSL/2126 new file mode 100644 index 000000000..40e42f443 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2126 @@ -0,0 +1,8 @@ +# TLS: logging parameters for 2 different recipients +exim -DSERVER=server -bd -oX PORT_D +**** +exim -odi userx usery +**** +# Wait to allow delivery to finish before killing the daemon +sleep 1 +killdaemon diff --git a/test/scripts/2100-OpenSSL/2127 b/test/scripts/2100-OpenSSL/2127 new file mode 100644 index 000000000..f2054ff5a --- /dev/null +++ b/test/scripts/2100-OpenSSL/2127 @@ -0,0 +1,14 @@ +# TLS server & client: no certificate in client +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim usery@test.ex +Test message +**** +exim -qf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2100-OpenSSL/2128 b/test/scripts/2100-OpenSSL/2128 new file mode 100644 index 000000000..a2e74bfaa --- /dev/null +++ b/test/scripts/2100-OpenSSL/2128 @@ -0,0 +1,30 @@ +# tls_on_connect_ports +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D:PORT_D2:PORT_D3 +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +quit +??? 221 +**** +client-ssl -tls-on-connect 127.0.0.1 PORT_D2 +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250 +quit +??? 221 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/2100-OpenSSL/2149 b/test/scripts/2100-OpenSSL/2149 new file mode 100644 index 000000000..bba059158 --- /dev/null +++ b/test/scripts/2100-OpenSSL/2149 @@ -0,0 +1,11 @@ +# TLS: DH ciphers for OpenSSL +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message +**** +exim -qf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/2100-OpenSSL/REQUIRES b/test/scripts/2100-OpenSSL/REQUIRES new file mode 100644 index 000000000..9e2124e10 --- /dev/null +++ b/test/scripts/2100-OpenSSL/REQUIRES @@ -0,0 +1,2 @@ +support OpenSSL +running IPv4 diff --git a/test/scripts/2200-dnsdb/2200 b/test/scripts/2200-dnsdb/2200 new file mode 100644 index 000000000..ccb326c2b --- /dev/null +++ b/test/scripts/2200-dnsdb/2200 @@ -0,0 +1,41 @@ +# dnsdb lookup in string expansions + +exim -be +test.ex ${lookup dnsdb{test.ex}{$value}fail} +txt=test.ex ${lookup dnsdb{txt=test.ex}{$value}fail} +a=black-1.test.ex ${lookup dnsdb{a=black-1.test.ex}{$value}fail} +xxx=test.ex ${lookup dnsdb{xxx=test.ex}{$value}fail} +a=localhost.test.ex ${lookup dnsdb{a=localhost.test.ex}{$value}fail} +cname=alias-eximtesthost.test.ex ${lookup dnsdb{cname=alias-eximtesthost.test.ex}{$value}fail} +ns=test.ex ${lookup dnsdb{ns=test.ex}{$value}fail} +zns=x.y.z.test.ex ${lookup dnsdb{zns=x.y.z.test.ex}{$value}fail} +mx=mxt1.test.ex ${lookup dnsdb{mx=mxt1.test.ex}{$value}fail} +mx=mxt3.test.ex ${lookup dnsdb{mx=mxt3.test.ex}{$value}fail} +mxh=mxt1.test.ex ${lookup dnsdb{mxh=mxt1.test.ex}{$value}fail} +ptr=V4NET.0.0.1 ${lookup dnsdb{ptr=V4NET.0.0.1}{$value}fail} +ptr=ptr.test.ex ${lookup dnsdb{ptr=ptr.test.ex}{$value}fail} +srv=_smtp._tcp.srv01.test.ex ${lookup dnsdb{srv=_smtp._tcp.srv01.test.ex}{$value}{fail}} +srv=_smtp._tcp.nosmtp.test.ex ${lookup dnsdb{srv=_smtp._tcp.nosmtp.test.ex}{$value}{fail}} + +csa=csa1.test.ex ${lookup dnsdb{csa=csa1.test.ex}} +csa=csa2.test.ex ${lookup dnsdb{csa=csa2.test.ex}} + +# DNS lookups with multiple items + +ten-1:ten2 ${lookup dnsdb{a=ten-1.test.ex:ten-2.test.ex}} +ten-1:defer:ten2 ${lookup dnsdb{a=ten-1.test.ex:test.again.dns:ten-2.test.ex}} +ten-1|ten2 ${lookup dnsdb{a=<|ten-1.test.ex|ten-2.test.ex}} +mxt1;mxt2 | output ${lookup dnsdb{>|mx=<;mxt1.test.ex;mxt2.test.ex}} +mxt1;mxt2 | output ${lookup dnsdb{>|mxh=<;mxt1.test.ex;mxt2.test.ex}} +13/14 rbl ${lookup dnsdb{> 13.12.11.V4NET.rbl.test.ex:13.12.11.V4NET.rbl.test.ex}} +double ptr ${lookup dnsdb{ptr=V4NET.0.0.1:V4NET.0.0.2}} +ten-1:bad ${lookup dnsdb{ a = ten-1.test.ex:badbad.test.ex}{$value}{FAILED}} +bad:bad ${lookup dnsdb{ a = <; badbad.test.ex ; badbad.test.ex}{$value}{FAILED}} + +defer:defer ${lookup dnsdb{a=test.again.dns:test.again.dns}} +defer_lax:ten-1 ${lookup dnsdb{a=test.again.dns:ten-1.test.ex}} +defer_lax:ten-1 ${lookup dnsdb{defer_lax,a=test.again.dns:ten-1.test.ex}} +defer_never:ten-1 ${lookup dnsdb{defer_never,a=test.again.dns:ten-1.test.ex}} +defer_never:defer ${lookup dnsdb{defer_never,a=test.again.dns:test.again.dns}} +defer_strict:ten-1 ${lookup dnsdb{defer_strict,a=test.again.dns:ten-1.test.ex}} +**** diff --git a/test/scripts/2200-dnsdb/2201 b/test/scripts/2200-dnsdb/2201 new file mode 100644 index 000000000..600298793 --- /dev/null +++ b/test/scripts/2200-dnsdb/2201 @@ -0,0 +1,6 @@ +# query-style lookup in domains, local_parts, senders +exim -d -bt test.ex@test.ex unknown@test.ex +**** +2 +exim -f a@b.c -bt test.ex@test.ex unknown@test.ex +**** diff --git a/test/scripts/2200-dnsdb/REQUIRES b/test/scripts/2200-dnsdb/REQUIRES new file mode 100644 index 000000000..abdd8f513 --- /dev/null +++ b/test/scripts/2200-dnsdb/REQUIRES @@ -0,0 +1 @@ +lookup dnsdb diff --git a/test/scripts/2250-dnsdb-ipv6/2250 b/test/scripts/2250-dnsdb-ipv6/2250 new file mode 100644 index 000000000..08cd326ad --- /dev/null +++ b/test/scripts/2250-dnsdb-ipv6/2250 @@ -0,0 +1,6 @@ +# dnsdb ipv6 lookup in string expansions + +exim -be +ptr=V6NET:0:12:1:a00:20ff:fe86:a062 ${lookup dnsdb {ptr=<;V6NET:0:12:1:a00:20ff:fe86:a062}{$value}{fail}} +ptr=V6NET:0:12:1:a00:20ff:fe86:a062 ${lookup dnsdb {ptr=V6NET:0:12:1:a00:20ff:fe86:a062}{$value}{fail}} +**** diff --git a/test/scripts/2250-dnsdb-ipv6/REQUIRES b/test/scripts/2250-dnsdb-ipv6/REQUIRES new file mode 100644 index 000000000..383609dbc --- /dev/null +++ b/test/scripts/2250-dnsdb-ipv6/REQUIRES @@ -0,0 +1,2 @@ +support IPv6 +lookup dnsdb diff --git a/test/scripts/2300-DBM/2300 b/test/scripts/2300-DBM/2300 new file mode 100644 index 000000000..aee60f7de --- /dev/null +++ b/test/scripts/2300-DBM/2300 @@ -0,0 +1,34 @@ +# DBM files and exim_dbmbuild +# This tests not only the exim_dbmbuild utility, but also dbm lookups. + +write test-dbm-input 1x10000=xxxxxxxx:_ 2x512=_ +++++ +**** +dbmbuild test-dbm-input test-dbm-file +exim -be +lsearch: ${lookup{xxxxxxxx}lsearch{DIR/test-dbm-input}} +dbm: ${lookup{xxxxxxxx}dbm{DIR/test-dbm-file}} +**** +write test-dbm-input 1x20000=xxxxxxxx:_ 2x512=_ +++++ +**** +dbmbuild test-dbm-input test-dbm-file +write test-dbm-input 1x19999=xxxxxxxx:_ 4x19999=_ 1x50=_ +++++ +**** +dbmbuild test-dbm-input test-dbm-file +write test-dbm-input +abc: [abc] +#ignored +"abc:" [abc:] +"#xyz:": [#xyz:] +"a \"b\" c" [a "b" c] +++++ +**** +dbmbuild test-dbm-input test-dbm-file +exim -be +${lookup{abc}dbm{DIR/test-dbm-file}} +${lookup{abc:}dbm{DIR/test-dbm-file}} +${lookup{#xyz:}dbm{DIR/test-dbm-file}} +${lookup{a "b" c}dbm{DIR/test-dbm-file}} +**** diff --git a/test/scripts/2300-DBM/REQUIRES b/test/scripts/2300-DBM/REQUIRES new file mode 100644 index 000000000..92ba0b493 --- /dev/null +++ b/test/scripts/2300-DBM/REQUIRES @@ -0,0 +1 @@ +lookup dbm diff --git a/test/scripts/2400-cdb/2400 b/test/scripts/2400-cdb/2400 new file mode 100644 index 000000000..85747a4f5 --- /dev/null +++ b/test/scripts/2400-cdb/2400 @@ -0,0 +1,11 @@ +# cdb lookup +exim -be +${lookup{first}cdb{DIR/aux-fixed/TESTNUM.cdb}} +${lookup{first}cdb{DIR/aux-fixed/TESTNUM.cdb}{$value}fail} +${lookup{fail}cdb{DIR/aux-fixed/TESTNUM.cdb}{$value}{failure value}} +${lookup{fail}cdb{DIR/aux-fixed/TESTNUM.cdb}{$value}fail} +${lookup{second}cdb{DIR/aux-fixed/TESTNUM.cdb}{$value}fail} +${extract{A}{${lookup{second}cdb{DIR/aux-fixed/TESTNUM.cdb}{$value}fail}}} +${extract{B}{${lookup{second}cdb{DIR/aux-fixed/TESTNUM.cdb}{$value}fail}}} +${extract{C}{${lookup{second}cdb{DIR/aux-fixed/TESTNUM.cdb}{$value}fail}}{$value}fail} +**** diff --git a/test/scripts/2400-cdb/REQUIRES b/test/scripts/2400-cdb/REQUIRES new file mode 100644 index 000000000..1fb3adda4 --- /dev/null +++ b/test/scripts/2400-cdb/REQUIRES @@ -0,0 +1 @@ +lookup cdb diff --git a/test/scripts/2500-dsearch/2500 b/test/scripts/2500-dsearch/2500 new file mode 100644 index 000000000..a1f4ac18b --- /dev/null +++ b/test/scripts/2500-dsearch/2500 @@ -0,0 +1,6 @@ +# dsearch lookup +exim -be +${lookup{TESTNUM.tst}dsearch{DIR/aux-fixed}{$value}{FAIL}} +${lookup{TESTNUM.TST}dsearch{DIR/aux-fixed}{$value}{FAIL}} +${lookup{TESTNUM.TST}dsearch{DIR/AUX-fixed}{$value}{FAIL}} +**** diff --git a/test/scripts/2500-dsearch/2501 b/test/scripts/2500-dsearch/2501 new file mode 100644 index 000000000..44b5308eb --- /dev/null +++ b/test/scripts/2500-dsearch/2501 @@ -0,0 +1,4 @@ +# dsearch in domain list +2 +exim -bt xxx@okdomain yyy@notokdomain zzz@dom/mod +**** diff --git a/test/scripts/2500-dsearch/REQUIRES b/test/scripts/2500-dsearch/REQUIRES new file mode 100644 index 000000000..2f6e8f319 --- /dev/null +++ b/test/scripts/2500-dsearch/REQUIRES @@ -0,0 +1 @@ +lookup dsearch diff --git a/test/scripts/2600-SQLite/2600 b/test/scripts/2600-SQLite/2600 new file mode 100644 index 000000000..f388b1ac1 --- /dev/null +++ b/test/scripts/2600-SQLite/2600 @@ -0,0 +1,32 @@ +# sqlite lookups +exim -d-all+lookup -be +${lookup sqlite{DIR/aux-fixed/sqlitedb select name from them where id='userx';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select name from them where id='userx';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select name from them where id='xxxx';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select name from them where id='nothing';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select id,name from them where id='nothing';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select * from them where id='quote2';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select * from them where id='newline';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select * from them where id='tab';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select * from them where id='its';}} +${lookup sqlite{DIR/aux-fixed/sqlitedb select * from them where name='${quote_sqlite:it's}';}} +**** +exim -d -bh 10.0.0.0 +mail from:<a@b> +rcpt to:<c@d> +rcpt to:<c@d> +quit +**** +exim -d -bh 10.10.10.10 +mail from:<a@b> +rcpt to:<c@d> +rcpt to:<c@d> +quit +**** +exim -odi -d userx +Test message +. +**** +exim -d-all+lookup -be +${lookup sqlite{DIR/aux-fixed/sqlitedb select name from them where id='userx';}} +**** diff --git a/test/scripts/2600-SQLite/REQUIRES b/test/scripts/2600-SQLite/REQUIRES new file mode 100644 index 000000000..a00342498 --- /dev/null +++ b/test/scripts/2600-SQLite/REQUIRES @@ -0,0 +1 @@ +lookup sqlite diff --git a/test/scripts/3000-Perl/3000 b/test/scripts/3000-Perl/3000 new file mode 100644 index 000000000..fc5002012 --- /dev/null +++ b/test/scripts/3000-Perl/3000 @@ -0,0 +1,59 @@ +# Embedded Perl +exim -be +${perl{foo}} +${perl{foo}{arg1}} +${perl{foo_undef}} +${perl{foo_die}} +${perl{foo_warn}} +${perl{unknown}} +${perl{readvar}{primary_hostname}} +${perl{readvar}{notexists}} + +${perl} +${perl{foo}{1}{2}{3}{4}{5}{6}{7}{8}} +${perl{foo}{1}{2}{3}{4}{5}{6}{7}{8}{9}} + +${perl{return_scalar}} +${perl{return_list}} +${perl{return_variable_vector}} +${perl{return_hash}} + +$tod_full // ${perl{change_locale}} // $tod_full +**** +exim -d-all+expand -be +${perl{foo}{arg1}} +${perl{foo_undef}} +${perl{debug_write}{debug from Perl\n}} +${perl{log_write}{log from Perl}} +**** +exim -v -bs +ehlo x.y.z +mail from:<> +rcpt to:<abc@x.y.z> +quit +**** +exim -bh 10.0.0.1 +ehlo x.y.z +mail from:<> +rcpt to:<abc@x.y.z> +quit +**** +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +helo x.y.z +??? 250 +mail from:<> +??? 250 +rcpt to:<abc@x.y.z> +??? 250 +quit +??? 221 +**** +killdaemon +exim -be +${perl{no_warn}} +${perl{foo_warn}} +**** +no_msglog_check diff --git a/test/scripts/3000-Perl/REQUIRES b/test/scripts/3000-Perl/REQUIRES new file mode 100644 index 000000000..36471ad08 --- /dev/null +++ b/test/scripts/3000-Perl/REQUIRES @@ -0,0 +1 @@ +support Perl diff --git a/test/scripts/3100-dlfunc/3100 b/test/scripts/3100-dlfunc/3100 new file mode 100644 index 000000000..472fd9920 --- /dev/null +++ b/test/scripts/3100-dlfunc/3100 @@ -0,0 +1,7 @@ +# dlfunc expansion +exim -be +${dlfunc{DIR/bin/loaded}{dltest}} +${dlfunc{DIR/bin/loaded}{dltest}{one argument}} +${dlfunc{DIR/bin/loaded}{dltest}{1}{2}} +${dlfunc{DIR/bin/loaded}{dltest}{1}{2}{3}} +**** diff --git a/test/scripts/3100-dlfunc/REQUIRES b/test/scripts/3100-dlfunc/REQUIRES new file mode 100644 index 000000000..156565c5f --- /dev/null +++ b/test/scripts/3100-dlfunc/REQUIRES @@ -0,0 +1 @@ +support Expand_dlfunc diff --git a/test/scripts/3200-testdb/3200 b/test/scripts/3200-testdb/3200 new file mode 100644 index 000000000..cd02ab5bc --- /dev/null +++ b/test/scripts/3200-testdb/3200 @@ -0,0 +1,6 @@ +# testdb lookups + +exim -be +match_ip: 12 ${if match_ip{10.11.12.13}{testdb;something}} +match_ip: 13 ${if match_ip{10.11.12.13}{testdb;fail}} +**** diff --git a/test/scripts/3200-testdb/3201 b/test/scripts/3200-testdb/3201 new file mode 100644 index 000000000..bddea5439 --- /dev/null +++ b/test/scripts/3200-testdb/3201 @@ -0,0 +1,5 @@ +# $sender_host_name - no auto lookup in query-style lookups +exim -d -bh 10.0.0.1 +**** +exim -d -bh 10.0.0.2 +**** diff --git a/test/scripts/3200-testdb/3202 b/test/scripts/3200-testdb/3202 new file mode 100644 index 000000000..7b7206353 --- /dev/null +++ b/test/scripts/3200-testdb/3202 @@ -0,0 +1,16 @@ +# ACL defer tests +exim -bh 1.1.1.1 +mail from:<x@y> +rcpt to:<x@y> +quit +**** +exim -bh 1.1.2.1 +mail from:<x@y> +rcpt to:<x@y> +quit +**** +exim -bh 1.1.3.1 +mail from:<x@y> +rcpt to:<x@y> +quit +**** diff --git a/test/scripts/3200-testdb/3203 b/test/scripts/3200-testdb/3203 new file mode 100644 index 000000000..46617d8b4 --- /dev/null +++ b/test/scripts/3200-testdb/3203 @@ -0,0 +1,4 @@ +# Lookup defer (senders) +exim -odi userx@test.ex +**** +no_msglog_check diff --git a/test/scripts/3200-testdb/3204 b/test/scripts/3200-testdb/3204 new file mode 100644 index 000000000..d4a24fe1b --- /dev/null +++ b/test/scripts/3200-testdb/3204 @@ -0,0 +1,5 @@ +# Lookup defer (sender_reject) +exim -bh 1.2.3.4 +mail from:<userx@somehost.example.com> +rcpt to:<x@y> +quit diff --git a/test/scripts/3200-testdb/3205 b/test/scripts/3200-testdb/3205 new file mode 100644 index 000000000..adb8be659 --- /dev/null +++ b/test/scripts/3200-testdb/3205 @@ -0,0 +1,11 @@ +# lookup defer (senders and hosts conditions in ACL) +exim -bh 1.2.3.4 +mail from:<userx@external.test.ex> +rcpt to:<userx@test.ex> +quit +**** +exim -bh 4.3.2.1 +mail from:<userx@external.test.ex> +rcpt to:<userx@test.ex> +quit +**** diff --git a/test/scripts/3200-testdb/3206 b/test/scripts/3200-testdb/3206 new file mode 100644 index 000000000..925a6f85e --- /dev/null +++ b/test/scripts/3200-testdb/3206 @@ -0,0 +1,8 @@ +# defer in hold_domains, queue_domains +exim -odi a@test.ex b@other.domain c@hold.remote.ex d@hold2.remote.ex e@queue.go.remote.ex f@queue2.go.remote.ex +**** +1 +exim -bv a@test.ex b@other.domain +**** +no_message_check +no_msglog_check diff --git a/test/scripts/3200-testdb/3207 b/test/scripts/3200-testdb/3207 new file mode 100644 index 000000000..7325d0ea3 --- /dev/null +++ b/test/scripts/3200-testdb/3207 @@ -0,0 +1,5 @@ +# defer in domains, local_parts, senders, condition +exim -odi r1@r1.ex r2@r2.ex r3@r3.ex r4@r4.ex d1@d1.ex d2@d2.ex d3@d3.ex d4@d4.ex +**** +no_message_check +no_msglog_check diff --git a/test/scripts/3200-testdb/3208 b/test/scripts/3200-testdb/3208 new file mode 100644 index 000000000..9e4f9e38a --- /dev/null +++ b/test/scripts/3200-testdb/3208 @@ -0,0 +1,15 @@ +# defer in percent_hack_domains, relay_domains +exim -bh V4NET.0.0.1 +ehlo remote.host +mail from:<user@remote.host> +rcpt to:<a@test.ex> +rcpt to:<a@other.ex> +rcpt to:<a%b@testhack.ex> +rcpt to:<a%b@test.ex> +rcpt to:<a%b@testhack2.ex> +rcpt to:<a@yesrelay.ex> +rcpt to:<a@norelay.ex> +rcpt to:<a%yesrelay.ex@testhack.ex> +rcpt to:<a%norelay.ex@testhack.ex> +quit +**** diff --git a/test/scripts/3200-testdb/3209 b/test/scripts/3200-testdb/3209 new file mode 100644 index 000000000..c619253a4 --- /dev/null +++ b/test/scripts/3200-testdb/3209 @@ -0,0 +1,6 @@ +# defer in mx_domains +need_ipv4 +# +exim -odi x@mxt7.test.ex x@ten-1.test.ex +**** +no_msglog_check diff --git a/test/scripts/3200-testdb/3210 b/test/scripts/3200-testdb/3210 new file mode 100644 index 000000000..7a61c83ec --- /dev/null +++ b/test/scripts/3200-testdb/3210 @@ -0,0 +1,4 @@ +# named domain lists - lookup defer +1 +exim -d -bt userx@test.ex +**** diff --git a/test/scripts/3200-testdb/3211 b/test/scripts/3200-testdb/3211 new file mode 100644 index 000000000..44ab87238 --- /dev/null +++ b/test/scripts/3200-testdb/3211 @@ -0,0 +1,16 @@ +# reset search_error_message for next router +exim -bs +mail from:<userx@test.ex> +rcpt to:<userx@test.again.dns> +quit +**** +exim -bh 1.2.3.4 +mail from:<userx@test.ex> +rcpt to:<userx@test.again.dns> +quit +**** +exim -bh 1.2.3.4 +mail from:<userx@test.ex> +rcpt to:<r1-userx@test.again.dns> +quit +**** diff --git a/test/scripts/3200-testdb/3212 b/test/scripts/3200-testdb/3212 new file mode 100644 index 000000000..c6e809ccb --- /dev/null +++ b/test/scripts/3200-testdb/3212 @@ -0,0 +1,16 @@ +# lookup caching all +exim -d -be +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{root}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{root}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} + +${lookup testdb {something}{$value}{NOT FOUND}} +${lookup testdb {something}{$value}{NOT FOUND}} +${lookup testdb {nocache}{$value}{NOT FOUND}} +${lookup testdb {something}{$value}{NOT FOUND}} + +${lookup{list}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +${lookup{root}lsearch{DIR/aux-fixed/TESTNUM.aliases}{$value}{NOT FOUND}} +**** diff --git a/test/scripts/3200-testdb/3213 b/test/scripts/3200-testdb/3213 new file mode 100644 index 000000000..ba34ffe11 --- /dev/null +++ b/test/scripts/3200-testdb/3213 @@ -0,0 +1,8 @@ +# address list matching an empty address +exim -bs +helo x.y.z +mail from:<> +rset +mail from:<x@y> +quit +**** diff --git a/test/scripts/3200-testdb/REQUIRES b/test/scripts/3200-testdb/REQUIRES new file mode 100644 index 000000000..36e522fc2 --- /dev/null +++ b/test/scripts/3200-testdb/REQUIRES @@ -0,0 +1 @@ +lookup testdb diff --git a/test/scripts/3300-crypteq/3300 b/test/scripts/3300-crypteq/3300 new file mode 100644 index 000000000..bd4dfccd2 --- /dev/null +++ b/test/scripts/3300-crypteq/3300 @@ -0,0 +1,34 @@ +# crypteq expansions + +exim -be +BadCrypt: ${if crypteq{MySecret}{}{yes}{no}} +MySecret: ${if crypteq{MySecret}{azrazPWCQJhyg}{yes}{no}} +MySecret: ${if crypteq{MySecret}{aarazPWCQJhyg}{yes}{no}} +MySecret: ${if crypteq{MySecret}{\{crypt\}azrazPWCQJhyg}{yes}{no}} +MySecret: ${if crypteq{MySecret}{\{CRYPT\}zzrazPWCQJhyg}{yes}{no}} + +crypt16: ${if crypteq{MySecret}{\{crypt16\}azrazPWCQJhyg}{yes}{no}} +crypt16: ${if crypteq{MySecretRhubarb}{\{crypt\}azrazPWCQJhyg}{yes}{no}} +crypt16: ${if crypteq{MySecretRhubarb}{\{crypt16\}azrazPWCQJhyg}{yes}{no}} +crypt16: ${if crypteq{MySecretRhubarb}{\{CRYPT16\}azrazPWCQJhygdJWzb77lQMA}{yes}{no}} + +test: ${if crypteq{test}{\{md5\}CY9rzUYh03PK3k6DJie09g==}{yes}{no}} +test: ${if crypteq{test}{\{MD5\}CY9rzUYh03PK3k6DJie09g==}{yes}{no}} +test: ${if crypteq{test}{\{md5\}AY9rzUYh03PK3k6DJie09g==}{yes}{no}} +test: ${if crypteq{test}{\{md5\}098f6bcd4621d373cade4e832627b4f6}{yes}{no}} +test: ${if crypteq{test}{\{md5\}198f6bcd4621d373cade4e832627b4f6}{yes}{no}} +test: ${if crypteq{test}{\{md5\}098f6bcd4621d373cade4e832627b4f}{yes}{no}} + +abc: ${if crypteq{abc}{\{sha1\}A9993E364706816ABA3E25717850C26C9CD0D89D}{yes}{no}} +abc: ${if crypteq{abc}{\{SHA1\}A9993E364706816ABA3E25717850C26C9CD0D89D}{yes}{no}} +abc: ${if crypteq{abc}{\{sha1\}qZk+NkcGgWq6PiVxeFDCbJzQ2J0=}{yes}{no}} +abd: ${if crypteq{abd}{\{sha1\}A9993E364706816ABA3E25717850C26C9CD0D89D}{yes}{no}} + +# Combinations + +Y: ${if and {{crypteq{MySecret}{azrazPWCQJhyg}}{exists{/etc/passwd}}}{Y}{N}} +Y: ${if or {{crypteq{MySecret}{azrazQWCQJhyg}}{exists{/etc/passwd}}}{Y}{N}} +Y: ${if or {{crypteq{MySecret}{azrazPWCQJhyg}}{exists{/etc/pxsswd}}}{Y}{N}} +N: ${if or {{crypteq{MySecret}{azrazQWCQJhyg}}{exists{/etc/pxsswd}}}{Y}{N}} +N: ${if and {{crypteq{MySecret}{azrazQWCQJhyg}}{exists{/etc/passwd}}}{Y}{N}} +**** diff --git a/test/scripts/3300-crypteq/REQUIRES b/test/scripts/3300-crypteq/REQUIRES new file mode 100644 index 000000000..b3928b51a --- /dev/null +++ b/test/scripts/3300-crypteq/REQUIRES @@ -0,0 +1 @@ +support crypteq diff --git a/test/scripts/3400-plaintext/3400 b/test/scripts/3400-plaintext/3400 new file mode 100644 index 000000000..b547a21b9 --- /dev/null +++ b/test/scripts/3400-plaintext/3400 @@ -0,0 +1,218 @@ +# plaintext server tests +exim -bh 10.0.0.2 +mail from:<junk@jink.jonk.test.ex> +rset +vrfy userx@test.ex +expn list@test.ex +etrn #abcd +quit +**** +exim -bh 10.0.0.1 +ehlo test.host +vrfy userx@test.ex +expn list@test.ex +etrn abcd +mail from:<junk@jink.jonk.test.ex> +rcpt to:<userx@test.ex> +noop +rset +auth mylogin dXNlcnggc2VjcmV0 +auth mylogin dXNlcnggc2VjcmV0 +mail from:<junk@jink.jonk.test.ex> +rcpt to:<userx@test.ex> +rcpt to:<userx@cus.cam.ac.uk> +rset +vrfy userx@test.ex +expn list@test.ex +etrn #abcd +noop +auth mylogin dXNlcnggc2VjcmV0 +quit +**** +exim -bh 10.0.0.3 +ehlo test.host +mail from:<junk@jink.jonk.test.ex> +rcpt to:<userx@cus.cam.ac.uk> +rset +auth mylogin dXNlcnggc2VjcmV0 +mail from:<junk@jink.jonk.test.ex> +rcpt to:<userx@cus.cam.ac.uk> +quit +**** +exim -odi -bs -oMa 10.0.0.3 +ehlo testclient.ex +mail from:<userx@cus.cam.ac.uk> +rcpt to:<userx@test.ex> +data +Testing unauthenticated. +. +mail from:<userx@cus.cam.ac.uk> auth=auth@cus.cam.ac.uk +rcpt to:<userx@test.ex> +data +Testing unauthenticated (2). +. +auth mylogin dXNlcnggc2VjcmV0 +mail from:<userx@cus.cam.ac.uk> +rcpt to:<userx@test.ex> +data +Testing authenticated. +. +mail from:<userx@cus.cam.ac.uk> auth=auth@cus.cam.ac.uk +rcpt to:<userx@test.ex> +data +Testing authenticated (2). +. +mail from:<userx@cus.cam.ac.uk> auth=au+zzth@cus.cam.ac.uk +rset +mail from:<userx@cus.cam.ac.uk> auth=<> +rcpt to:<userx@test.ex> +data +Testing authenticated (3). +. +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +auth plain AHVzZXJ4AHNlY3JldA== +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +auth defer AHVzZXJ4AHNlY3JldA== +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +auth plain +AHVzZXJ4AHNlY3JldA== +quit +**** +exim -odi -bs -oMa 10.0.0.1 +ehlo test.host +AUTH LOGIN +dXNlcng= +c2VjcmV0 +mail from:<userx@cus.cam.ac.uk> +rcpt to:<userx@test.ex> +data +Testing authenticated. +. +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +AUTH LOGIN +dXNlcngAc2VjcmV0 +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +AUTH LOGIN dXNlcngAc2VjcmV0 +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +AUTH LOGIN dXNlcng= +c2VjcmV0 +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +AUTH LOGIN +dXNlcng= +* +quit +**** +exim -bh 10.0.0.4 +ehlo test.host +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +auth plain AGVzZXJ4AHNlY3JldA== +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +auth explain +AHVzZXJ4AHNlY3JldA== +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +auth expanded +AHVzZXJ4AHNlY3JldA== +quit +**** +exim -bs -oMa 10.0.0.1 +ehlo test.host +auth expandfail +AHVzZXJ4AHNlY3JldA== +quit +**** +exim -bs -oMa 10.0.0.2 +ehlo test.host +auth expandfail +AHVzZXJ4AHNlY3JldA== +quit +**** +1 +exim -bs -oMa 10.0.0.1 +ehlo test.host +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +auth expanded AHVzZXJ4AHNlY3JlVw== +**** +exim -odi -bs -oMa 10.0.0.5 +ehlo testing.testing +mail from:<x@y> +rcpt to:<userx@test.ex> +data +Without authenticating +. +auth mylogin dXNlcnggc2VjcmV0 +mail from:<x@y> +rcpt to:<userx@test.ex> +data +Authentication failed +. +auth mylogin dXNlcnggc2VjcmV0 +mail from:<x@y> +rcpt to:<userx@test.ex> +data +Authentication succeeded +. +quit +**** +exim -odi -bs -oMa 10.0.0.1 +ehlo test.host +AUTH LOGIN + +c2VjcmV0 +quit +**** +exim -d -odi -bs -oMa 10.0.0.5 +ehlo testing.testing +auth mylogin dXNlcnggc2VjcmV0 +quit +**** +no_msglog_check diff --git a/test/scripts/3400-plaintext/3401 b/test/scripts/3400-plaintext/3401 new file mode 100644 index 000000000..b3e7c6a0a --- /dev/null +++ b/test/scripts/3400-plaintext/3401 @@ -0,0 +1,141 @@ +# plaintext client tests +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH LOGIN +AUTH LOGIN +334 VXNlciBOYW1l +dXNlcng +334 UGFzc3dvcmQ= +c2VjcmV0 +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -odi userx@domain.com +. +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH PLAIN +AUTH PLAIN AHVzZXJ4AHNlY3JldA== +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -odi userx@domain.com +. +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH PLAIN +AUTH PLAIN AHVzZXJ4AHNlY3JldA== +535 Sorry, authentication failed +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -odi userx@domain.com +. +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH LOGIN +AUTH LOGIN +**** +exim -odi userx@domain.com +. +**** +# Authentication required, but fails +# Get rid of retry first +sudo rm spool/db/* +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH PLAIN +AUTH PLAIN AHVzZXJ4AHNlY3JldA== +535 Sorry, authentication failed +QUIT +250 OK +**** +exim -odi userx@authdomain.com +. +**** +# Authentication required, but not offered +server PORT_S +220 ESMTP +EHLO +250-OK +250 HELP +QUIT +250 OK +**** +exim -odi userx@authdomain.com +. +**** +# Forced AUTH sender +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH LOGIN +AUTH LOGIN +334 VXNlciBOYW1l +dXNlcng +334 UGFzc3dvcmQ= +c2VjcmV0 +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -odi forcesender@domain.com +. +**** +no_msglog_check diff --git a/test/scripts/3400-plaintext/3402 b/test/scripts/3400-plaintext/3402 new file mode 100644 index 000000000..c14066143 --- /dev/null +++ b/test/scripts/3400-plaintext/3402 @@ -0,0 +1,13 @@ +# authentication (server_mail_auth_condition) +exim -bs -oMa 10.0.0.2 +ehlo testing.ex +auth plain AHVzZXJ4AHNlY3JldA== +mail from:<userx@test.ex> AUTH=xyz@test.ex +quit +**** +exim -bs -oMa 10.0.0.2 +ehlo testing.ex +auth plain AHVzZXJ5AGFiPw== +mail from:<userx@test.ex> AUTH=xyz@test.ex +quit +**** diff --git a/test/scripts/3400-plaintext/3403 b/test/scripts/3400-plaintext/3403 new file mode 100644 index 000000000..98981fa36 --- /dev/null +++ b/test/scripts/3400-plaintext/3403 @@ -0,0 +1,13 @@ +# authentication (preservation of $authenticated_id) +exim -odi -bs -oMa 10.0.0.2 +ehlo testing.ex +auth plain AHVzZXJ4CgBzZWNyZXQ= +auth plain AHVzZXJ4AHNlY3JldA== +mail from:<userx@test.ex> +rcpt to:<userx@test.ex> +data +Test data +. +quit +**** +no_msglog_check diff --git a/test/scripts/3400-plaintext/3404 b/test/scripts/3400-plaintext/3404 new file mode 100644 index 000000000..98f737eac --- /dev/null +++ b/test/scripts/3400-plaintext/3404 @@ -0,0 +1,73 @@ +# -Mas -Mai (trusted caller); also -v and auth data +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH PLAIN +AUTH PLAIN AHVzZXJ4AHNlY3JldA== +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -v -odi userx@domain.com +. +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH PLAIN +AUTH PLAIN AHVzZXJ4AHNlY3JldA== +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -v -oMas xxx@yyy -oMai zzz -odi userx@domain.com +. +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH LOGIN +AUTH LOGIN +300 User? +dXNlcng= +300 Password? +c2VjcmV0 +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -v -odi userx@domain.com +. +**** diff --git a/test/scripts/3400-plaintext/3405 b/test/scripts/3400-plaintext/3405 new file mode 100644 index 000000000..6312d1f40 --- /dev/null +++ b/test/scripts/3400-plaintext/3405 @@ -0,0 +1,47 @@ +# -Mas -Mai (untrusted caller) +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH PLAIN +AUTH PLAIN AHVzZXJ4AHNlY3JldA== +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -odi userx@domain.com +. +**** +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH PLAIN +AUTH PLAIN AHVzZXJ4AHNlY3JldA== +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -oMas xxx@yyy -oMai zzz -odi userx@domain.com +. +**** diff --git a/test/scripts/3400-plaintext/3406 b/test/scripts/3400-plaintext/3406 new file mode 100644 index 000000000..ea61c88e9 --- /dev/null +++ b/test/scripts/3400-plaintext/3406 @@ -0,0 +1,21 @@ +# server_advertise_condition +exim -bs -oMa 10.0.0.2 +ehlo testing.ex +auth first +quit +**** +exim -bs -oMa 10.0.0.3 +ehlo testing.ex +auth first +quit +**** +exim -bs -oMa 10.0.0.2 +ehlo testing.ex +auth second +quit +**** +exim -bs -oMa 10.0.0.3 +ehlo testing.ex +auth second +quit +**** diff --git a/test/scripts/3400-plaintext/3407 b/test/scripts/3400-plaintext/3407 new file mode 100644 index 000000000..d42a22a74 --- /dev/null +++ b/test/scripts/3400-plaintext/3407 @@ -0,0 +1,9 @@ +# diagnose duplicate authenticator methods +1 +exim -bP authenticators +**** +exim -DOPTION= -bP authenticators +**** +1 +exim -DOPTION=client_send=zzz -bP authenticators +**** diff --git a/test/scripts/3400-plaintext/3408 b/test/scripts/3400-plaintext/3408 new file mode 100644 index 000000000..25374a129 --- /dev/null +++ b/test/scripts/3400-plaintext/3408 @@ -0,0 +1,23 @@ +# RBL blocking (postmaster exception, AUTH exception) +exim -bh V4NET.11.12.14 +ehlo exim.test.ex +mail from:postmaster@exim.test.ex +rcpt to:<postmaster@exim.test.ex> +rcpt to:userx@exim.test.ex +data +test data +. +quit +**** +exim -bh V4NET.11.12.14 +ehlo exim.test.ex +auth plain AHVzZXJ4AHNlY3JldA== +mail from:postmaster@exim.test.ex +rcpt to:<postmaster@exim.test.ex> +rcpt to:userx@exim.test.ex +data +test data +. +quit +**** +no_msglog_check diff --git a/test/scripts/3400-plaintext/3409 b/test/scripts/3400-plaintext/3409 new file mode 100644 index 000000000..e719d1084 --- /dev/null +++ b/test/scripts/3400-plaintext/3409 @@ -0,0 +1,15 @@ +# SMTP syntax errors logging +exim -bs +ehlo a.b.c +auth a%b +auth plain AHVzZXJ4AHNlY3JldA== +auth plain AHVzZXJ4AHNlY3JldA== +mail from:<x@y> auth=a+b@c.d +quit +**** +exim -bs +ehlo a.b.c +mail from:<x@y> +auth plain AHVzZXJ4AHNlY3JldA== +quit +**** diff --git a/test/scripts/3400-plaintext/3410 b/test/scripts/3400-plaintext/3410 new file mode 100644 index 000000000..20b5e067c --- /dev/null +++ b/test/scripts/3400-plaintext/3410 @@ -0,0 +1,30 @@ +# ACL basic auth tests +exim -bh 5.6.9.1 +mail from:<x@y> +rcpt to:<x@y> +rset +ehlo rhu.barb +auth PLAIN AHVzZXJ4AHNlY3JldA== +mail from:<x@y> +rcpt to:<x@y> +quit +**** +exim -bh 5.6.10.1 +mail from:<x@y> +rcpt to:<x@y> +rset +ehlo rhu.barb +auth PLAIN AHVzZXJ4AHNlY3JldA== +mail from:<x@y> +rcpt to:<x@y> +quit +**** +exim -bh 5.6.10.1 +ehlo rhu.barb +auth LOGIN +dXNlcng= +c2VjcmV0 +mail from:<x@y> +rcpt to:<x@y> +quit +**** diff --git a/test/scripts/3400-plaintext/3411 b/test/scripts/3400-plaintext/3411 new file mode 100644 index 000000000..bd8dc2738 --- /dev/null +++ b/test/scripts/3400-plaintext/3411 @@ -0,0 +1,22 @@ +# ACL with a "standard" auth configuration +# +# Not a relay host, but authenticated, 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) +# accept x@ten-2.test.ex (good address, not relay domain/host, but authenticated) +exim -odi -oMa 10.0.0.0 -bs +ehlo rhu.barb +auth PLAIN AHBoMTAAc2VjcmV0 +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 6 +. +quit +**** diff --git a/test/scripts/3400-plaintext/3412 b/test/scripts/3400-plaintext/3412 new file mode 100644 index 000000000..a551ad28c --- /dev/null +++ b/test/scripts/3400-plaintext/3412 @@ -0,0 +1,24 @@ +# bounce_sender_authentication +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH PLAIN +AUTH PLAIN +254 Authentication OK +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -odi x@test.ex +**** diff --git a/test/scripts/3400-plaintext/3413 b/test/scripts/3400-plaintext/3413 new file mode 100644 index 000000000..3737d23d2 --- /dev/null +++ b/test/scripts/3400-plaintext/3413 @@ -0,0 +1,10 @@ +# smtp_accept_max_nonmail and failing auth +1 +exim -bs +ehlo x.y.z +auth rhubarb +auth rhubarb +auth rhubarb +auth rhubarb +auth rhubarb +**** diff --git a/test/scripts/3400-plaintext/3414 b/test/scripts/3400-plaintext/3414 new file mode 100644 index 000000000..37528f2ea --- /dev/null +++ b/test/scripts/3400-plaintext/3414 @@ -0,0 +1,38 @@ +# control of AUTH= on MAIL by ACL +exim -DS=# -bs +ehlo xxxx +mail from:<a@b> auth=c@d +quit +**** +exim -bs +ehlo xxxx +mail from:<a@b> auth=c@d +quit +**** +exim -DACL=accept -bs +ehlo xxxx +mail from:<a@b> auth=c@d +quit +**** +# No acl_smtp_mailauth, but authenticated +exim -DS=# -bs +ehlo xxxx +auth plain abcd +mail from:<a@b> auth=c@d +quit +**** +# Authenticated but ACL rejects +exim -bs +ehlo xxxx +auth plain abcd +mail from:<a@b> auth=c@d +quit +**** +# ACL allows some only +exim -DACL=acl1 -bs +ehlo xxxx +mail from:<a@b> auth=bad@bad +rset +mail from:<a@b> auth=ok@ok +quit +**** diff --git a/test/scripts/3400-plaintext/3415 b/test/scripts/3400-plaintext/3415 new file mode 100644 index 000000000..05c7f0ae2 --- /dev/null +++ b/test/scripts/3400-plaintext/3415 @@ -0,0 +1,127 @@ +# control = submission with 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- +??? 250 +auth plain AHVzZXJuYW1lAG15c2VjcmV0 +??? 235 +mail from:<a@y> +??? 250 +rcpt to:<x@y> +??? 250 +data +??? 354 +. +??? 250 +mail from:<> +??? 250 +rcpt to:<x@y> +??? 250 +data +??? 354 +. +??? 250 +quit +??? 221 +**** +killdaemon +# Wait for delivery process +millisleep 500 +exim -DSERVER=server -DSUBMISSION_OPTIONS=/domain=another.domain -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJuYW1lAG15c2VjcmV0 +??? 235 +mail from:<> +??? 250 +rcpt to:<x@y> +??? 250 +data +??? 354 +. +??? 250 +quit +??? 221 +**** +killdaemon +# Wait for delivery process +millisleep 500 +exim -DSERVER=server -DSUBMISSION_OPTIONS=/domain= -DAUTH_ID_DOMAIN=@auth.id.domain -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJuYW1lAG15c2VjcmV0 +??? 235 +mail from:<> +??? 250 +rcpt to:<x@y> +??? 250 +data +??? 354 +. +??? 250 +quit +??? 221 +**** +killdaemon +# Wait for delivery process +millisleep 500 +exim -DSERVER=server -DSUBMISSION_OPTIONS=/domain= -DAUTH_ID_DOMAIN=@auth.id.domain -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +ehlo rhu.barb +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJuYW1lAG15c2VjcmV0 +??? 235 +mail from:<> +??? 250 +rcpt to:<x@y> +??? 250 +data +??? 354 +From: abc@x.y.z +. +??? 250 +quit +??? 221 +**** +killdaemon +# Wait for delivery process +millisleep 500 +exim -Mvh $msg1 +**** +exim -Mvh $msg2 +**** +exim -Mvh $msg3 +**** +exim -Mvh $msg4 +**** +exim -Mvh $msg5 +**** +no_msglog_check diff --git a/test/scripts/3400-plaintext/REQUIRES b/test/scripts/3400-plaintext/REQUIRES new file mode 100644 index 000000000..9690eb334 --- /dev/null +++ b/test/scripts/3400-plaintext/REQUIRES @@ -0,0 +1 @@ +authenticator plaintext diff --git a/test/scripts/3450-plaintext-GnuTLS/3450 b/test/scripts/3450-plaintext-GnuTLS/3450 new file mode 100644 index 000000000..bb50a3e9c --- /dev/null +++ b/test/scripts/3450-plaintext-GnuTLS/3450 @@ -0,0 +1,43 @@ +# TLS (server: TLS required before AUTH) +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl HOSTIPV4 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJ4AHNlY3JldA== +??? 235 +quit +??? 221 +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJ4AHNlY3JldA== +??? 503 +starttls +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJ4AHNlY3JldA== +??? 235 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/3450-plaintext-GnuTLS/3451 b/test/scripts/3450-plaintext-GnuTLS/3451 new file mode 100644 index 000000000..762366324 --- /dev/null +++ b/test/scripts/3450-plaintext-GnuTLS/3451 @@ -0,0 +1,15 @@ +# TLS (server: AUTH PLAIN + TLS with multiple messages) +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message 1 +**** +exim userx@test.ex +Test message 2 +**** +exim -qqf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/3450-plaintext-GnuTLS/3452 b/test/scripts/3450-plaintext-GnuTLS/3452 new file mode 100644 index 000000000..5cb7dd4f5 --- /dev/null +++ b/test/scripts/3450-plaintext-GnuTLS/3452 @@ -0,0 +1,15 @@ +# TLS (server: AUTH LOGIN + TLS with multiple messages) +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message 1 +**** +exim userx@test.ex +Test message 2 +**** +exim -qqf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/3450-plaintext-GnuTLS/3453 b/test/scripts/3450-plaintext-GnuTLS/3453 new file mode 100644 index 000000000..cf99cd896 --- /dev/null +++ b/test/scripts/3450-plaintext-GnuTLS/3453 @@ -0,0 +1,44 @@ +# TLS (server: tls_remember_esmtp) +gnutls +exim -DSERVER=server -bd -oX PORT_D +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +auth plain AHVzZXJ4AHNlY3JldA== +??? 503 +mail from:<x@y> size=1234 +??? 501 +quit +??? 221 +**** +killdaemon +exim -DSERVER=server -DREMEMBER=true -bd -oX PORT_D +**** +client-gnutls 127.0.0.1 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +auth plain AHVzZXJ4AHNlY3JldA== +??? 235 +mail from:<x@y> size=1234 +??? 250 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/3450-plaintext-GnuTLS/REQUIRES b/test/scripts/3450-plaintext-GnuTLS/REQUIRES new file mode 100644 index 000000000..eec18be19 --- /dev/null +++ b/test/scripts/3450-plaintext-GnuTLS/REQUIRES @@ -0,0 +1,3 @@ +support GnuTLS +authenticator plaintext +running IPv4 diff --git a/test/scripts/3460-plaintext-OpenSSL/3460 b/test/scripts/3460-plaintext-OpenSSL/3460 new file mode 100644 index 000000000..3d8f36c80 --- /dev/null +++ b/test/scripts/3460-plaintext-OpenSSL/3460 @@ -0,0 +1,42 @@ +# TLS (server: TLS required before AUTH) +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl HOSTIPV4 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJ4AHNlY3JldA== +??? 235 +quit +??? 221 +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJ4AHNlY3JldA== +??? 503 +starttls +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +auth plain AHVzZXJ4AHNlY3JldA== +??? 235 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/3460-plaintext-OpenSSL/3461 b/test/scripts/3460-plaintext-OpenSSL/3461 new file mode 100644 index 000000000..1366f1f72 --- /dev/null +++ b/test/scripts/3460-plaintext-OpenSSL/3461 @@ -0,0 +1,14 @@ +# TLS (server: AUTH PLAIN + TLS with multiple messages) +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message 1 +**** +exim userx@test.ex +Test message 2 +**** +exim -qqf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/3460-plaintext-OpenSSL/3462 b/test/scripts/3460-plaintext-OpenSSL/3462 new file mode 100644 index 000000000..7f4d94e4e --- /dev/null +++ b/test/scripts/3460-plaintext-OpenSSL/3462 @@ -0,0 +1,14 @@ +# TLS (server: AUTH LOGIN + TLS with multiple messages) +exim -DSERVER=server -bd -oX PORT_D +**** +exim userx@test.ex +Test message 1 +**** +exim userx@test.ex +Test message 2 +**** +exim -qqf +**** +killdaemon +exim -DSERVER=server -DNOTDAEMON -qf +**** diff --git a/test/scripts/3460-plaintext-OpenSSL/3463 b/test/scripts/3460-plaintext-OpenSSL/3463 new file mode 100644 index 000000000..e2de70bb2 --- /dev/null +++ b/test/scripts/3460-plaintext-OpenSSL/3463 @@ -0,0 +1,43 @@ +# TLS (server: tls_remember_esmtp) +exim -DSERVER=server -bd -oX PORT_D +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +auth plain AHVzZXJ4AHNlY3JldA== +??? 503 +mail from:<x@y> size=1234 +??? 501 +quit +??? 221 +**** +killdaemon +exim -DSERVER=server -DREMEMBER=true -bd -oX PORT_D +**** +client-ssl 127.0.0.1 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +starttls +??? 220 +auth plain AHVzZXJ4AHNlY3JldA== +??? 235 +mail from:<x@y> size=1234 +??? 250 +quit +??? 221 +**** +killdaemon diff --git a/test/scripts/3460-plaintext-OpenSSL/REQUIRES b/test/scripts/3460-plaintext-OpenSSL/REQUIRES new file mode 100644 index 000000000..264909808 --- /dev/null +++ b/test/scripts/3460-plaintext-OpenSSL/REQUIRES @@ -0,0 +1,3 @@ +support OpenSSL +authenticator plaintext +running IPv4 diff --git a/test/scripts/3500-CRAM-MD5/3500 b/test/scripts/3500-CRAM-MD5/3500 new file mode 100644 index 000000000..b3d2c05aa --- /dev/null +++ b/test/scripts/3500-CRAM-MD5/3500 @@ -0,0 +1,35 @@ +# CRAM-MD5 server tests + +exim -odi -bs -oMa 10.0.0.1 +ehlo test.host +AUTH CRAM-MD5 +dGltIGI5MTNhNjAyYzdlZGE3YTQ5NWI0ZTZlNzMzNGQzODkw +mail from:<userx@some.domain> +rcpt to:<userx@test.ex> +data +Testing authenticated CRAM-MD5. +. +quit +**** +exim -odi -bs -oMa 10.0.0.1 +ehlo test.host +AUTH CRAM-MD5 +dXNlcnggNzMzYmE4N2U2NGVkN2U0NDFmMDYyYzRhYzZkYjAxMDM= +quit +**** +exim -bh 10.0.0.4 +ehlo test.host +quit +**** +exim -bh 10.0.0.1 +ehlo test.host +AUTH CRAM-MD5 +dGltIGI5MTNhNjAyYzdlZGE3YTQ5NWI0ZTZlNzMzNGQzODkw +mail from:<userx@some.domain> +rcpt to:<userx@test.ex> +data +Testing authenticated CRAM-MD5. +. +quit +**** +no_msglog_check diff --git a/test/scripts/3500-CRAM-MD5/3501 b/test/scripts/3500-CRAM-MD5/3501 new file mode 100644 index 000000000..d9a27278c --- /dev/null +++ b/test/scripts/3500-CRAM-MD5/3501 @@ -0,0 +1,28 @@ +# CRAM-MD5 client tests +need_ipv4 +# +server PORT_S +220 ESMTP +EHLO +250-OK +250-HELP +250 AUTH CRAM-MD5 +AUTH CRAM-MD5 +334 PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2UucmVzdG9uLm1jaS5uZXQ+ +dGltIGI5MTNhNjAyYzdlZGE3YTQ5NWI0ZTZlNzMzNGQzODkw +235 Authentication successful +MAIL FROM: +250 Sender OK +RCPT TO: +250 Recipient OK +DATA +354 Send data +. +250 OK +QUIT +250 OK +**** +exim -odi userx@domain.com +. +**** +no_msglog_check diff --git a/test/scripts/3500-CRAM-MD5/REQUIRES b/test/scripts/3500-CRAM-MD5/REQUIRES new file mode 100644 index 000000000..93ec9fe82 --- /dev/null +++ b/test/scripts/3500-CRAM-MD5/REQUIRES @@ -0,0 +1 @@ +authenticator cram_md5 diff --git a/test/scripts/3600-SPA/3600 b/test/scripts/3600-SPA/3600 new file mode 100644 index 000000000..51b6f9083 --- /dev/null +++ b/test/scripts/3600-SPA/3600 @@ -0,0 +1,45 @@ +# SPA authentication (server and client) +exim -DSERVER=server -bd -oX PORT_D +**** +exim -f ok@test.ex x@y +**** +exim -q +**** +exim -Mes $msg1 bad@test.ex +**** +exim -q +**** +client -t3 127.0.0.1 PORT_D +??? 220 +EHLO xxxx +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +AUTH NTLM +??? 334 +teststring +??? 535 +quit +??? 221 +**** +client -t3 127.0.0.1 PORT_D +??? 220 +EHLO xxxx +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +AUTH NTLM +??? 334 +dGVzdHN0cmluZw== +??? 334 +teststring +??? 535 +quit +??? 221 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/3600-SPA/REQUIRES b/test/scripts/3600-SPA/REQUIRES new file mode 100644 index 000000000..d5f7283b3 --- /dev/null +++ b/test/scripts/3600-SPA/REQUIRES @@ -0,0 +1,2 @@ +authenticator spa +running IPv4 diff --git a/test/scripts/4000-scanning/4000 b/test/scripts/4000-scanning/4000 new file mode 100644 index 000000000..d0f132ce5 --- /dev/null +++ b/test/scripts/4000-scanning/4000 @@ -0,0 +1,202 @@ +# Basic exiscan feature tests +echo ==> This test may take a bit of time, depending on exactly +echo ==> how your SpamAssassin is configured. +exim -odi -bs +ehlo test.ex +mail from:<> +rcpt to:<userx@test.ex> +data +A message without any headers. +. +quit +**** +exim -odi -bs +ehlo test.ex +mail from:<> +rcpt to:<userx@test.ex> +data +From: Test person <tp@cam.ac.uk> +To: Me <userx@test.ex> +Subject: A real test message +Date: Fri, 17 Dec 2004 16:13:04 +0100 +Message-ID: <41C2F849.3060203@projectile.test.ex> + +OK, this should look like a genuine message. +. +quit +**** +exim -odi -bs +ehlo test.ex +mail from:<> +rcpt to:<userx@test.ex> +data +From: 99Junk99@somewhere.com +To: +Subject: MAKE MONEY FAST!!!! +Message-id: abcde + +This should be enough to trip the threshold. +. +quit +**** +exim -odi -bs +ehlo test.ex +mail from:<> +rcpt to:<userx@test.ex> +data +From: Test person <tp@cam.ac.uk> +To: Me <userx@test.ex> +Subject: A real test message +Date: Fri, 17 Dec 2004 16:13:04 +0100 +Message-ID: <41C2F849.3060203@projectile.test.ex> +FakeReject: test fakereject + +OK, this should look like a genuine message, but +it will trip on THIS REGEX. +. +quit +**** +exim -odi -bs +ehlo test.ex +mail from:<> +rcpt to:<userx@test.ex> +data +Date: Fri, 17 Dec 2004 14:35:01 +0100 +From: J Caesar <jcaesar@test.ex> +To: a-list00@exim.org +Message-ID: <20041217133501.GA3058@test.ex> +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="T4sUOijqQbZv57TR" +Content-Disposition: inline +Subject: [exim] Re: Bug#286074: eximstats: uses message count as data for + the "volume" charts +X-BeenThere: a-list00@exim.org +X-Mailman-Version: 2.1.5 +Precedence: list + +--T4sUOijqQbZv57TR +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline + +There was a part of the patch missing, complete one is attached. + sorry for wasting your time + +--T4sUOijqQbZv57TR +Content-Type: text/plain; charset=us-ascii +Content-Disposition: attachment; filename=working-patch + +--- /usr/sbin/eximstats 2004-12-17 13:36:44.381983753 +0100 ++++ eximstats 2004-12-17 13:47:37.763185260 +0100 +@@ -1107,11 +1107,11 @@ + if (scalar @chartdatanames < $ntopchart) + { + push(@chartdatanames, $key); +- push(@chartdatavals, $$m_count{$key}); ++ push(@chartdatavals, $$m_data{$key}); + } + else + { +- $chartotherval += $$m_count{$key}; ++ $chartotherval += $$m_data{$key}; + } + } + push(@chartdatanames, "Other"); + +--T4sUOijqQbZv57TR +Content-Type: text/plain; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Content-Disposition: inline + +-- + +--T4sUOijqQbZv57TR-- +. +quit +**** +# Non-smtp message +exim -odi userx@test.ex +A message without any headers. +. +**** +# Non-smtp MIME message +exim -odi userx@test.ex +Date: Fri, 17 Dec 2004 14:35:01 +0100 +From: J Caesar <jcaesar@test.ex> +To: a-list00@exim.org +Message-ID: <20041217133501.GA3058@test.ex> +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="T4sUOijqQbZv57TR" +Content-Disposition: inline +Subject: [exim] Re: Bug#286074: eximstats: uses message count as data for + the "volume" charts +X-BeenThere: a-list00@exim.org +X-Mailman-Version: 2.1.5 +Precedence: list + +--T4sUOijqQbZv57TR +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline + +There was a part of the patch missing, complete one is attached. + sorry for wasting your time + +--T4sUOijqQbZv57TR +Content-Type: text/plain; charset=us-ascii +Content-Disposition: attachment; filename=working-patch + +--- /usr/sbin/eximstats 2004-12-17 13:36:44.381983753 +0100 ++++ eximstats 2004-12-17 13:47:37.763185260 +0100 +@@ -1107,11 +1107,11 @@ + if (scalar @chartdatanames < $ntopchart) + { + push(@chartdatanames, $key); +- push(@chartdatavals, $$m_count{$key}); ++ push(@chartdatavals, $$m_data{$key}); + } + else + { +- $chartotherval += $$m_count{$key}; ++ $chartotherval += $$m_data{$key}; + } + } + push(@chartdatanames, "Other"); + +--T4sUOijqQbZv57TR +Content-Type: text/plain; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Content-Disposition: inline + +-- + +--T4sUOijqQbZv57TR-- +**** +exim -odi -bs +ehlo test.ex +mail from:<> +rcpt to:<userx@test.ex> +data +From: Test person <tp@cam.ac.uk> +To: Me <userx@test.ex> +Subject: A real test message +Date: Fri, 17 Dec 2004 16:13:04 +0100 +Message-ID: <41C2F849.3060203@projectile.test.ex> +FakeDefer: test fakedefer + +OK, this should look like a genuine message, but +it will trip on THIS REGEX. +. +quit +**** +# Very simple virus test +exim -odi -bs +mail from:<> +rcpt to:<userx@test.ex> +data +Subject: a virus test + +X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* +. +quit +**** diff --git a/test/scripts/4000-scanning/REQUIRES b/test/scripts/4000-scanning/REQUIRES new file mode 100644 index 000000000..3f002958c --- /dev/null +++ b/test/scripts/4000-scanning/REQUIRES @@ -0,0 +1,3 @@ +support Content_Scanning +running SpamAssassin +running ClamAV diff --git a/test/scripts/4100-iconv/4100 b/test/scripts/4100-iconv/4100 new file mode 100644 index 000000000..37a1bd512 --- /dev/null +++ b/test/scripts/4100-iconv/4100 @@ -0,0 +1,9 @@ +# $h_ $bh_ and $rh_ expansions +exim -bf DIR/aux-fixed/TESTNUM.f +subject: lots of leading and trailing space +To: a@b +To: c@d +X-8: (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=) +X-9: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <xxx> +X-10: =?US-ASCII?Q?Keith_Moore?= <xxx> +**** diff --git a/test/scripts/4100-iconv/REQUIRES b/test/scripts/4100-iconv/REQUIRES new file mode 100644 index 000000000..84e013f1d --- /dev/null +++ b/test/scripts/4100-iconv/REQUIRES @@ -0,0 +1 @@ +support iconv() diff --git a/test/scripts/4950-translate-ip/4950 b/test/scripts/4950-translate-ip/4950 new file mode 100644 index 000000000..f8e1f389e --- /dev/null +++ b/test/scripts/4950-translate-ip/4950 @@ -0,0 +1,11 @@ +# smtp translate_ip_address +exim -d-all+route -bt userx@black-1.test.ex +**** +exim -d-all+route -bt userx@myhost.test.ex +**** +exim -d-all+route -bt userx@ten-1.test.ex +**** +exim -d-all+route -bt userx@other1.test.ex +**** +1 +exim -d-all+route -bt userx@other99.test.ex diff --git a/test/scripts/4950-translate-ip/REQUIRES b/test/scripts/4950-translate-ip/REQUIRES new file mode 100644 index 000000000..b35172fe1 --- /dev/null +++ b/test/scripts/4950-translate-ip/REQUIRES @@ -0,0 +1 @@ +support translate_ip_address diff --git a/test/scripts/5000-maildir/5000 b/test/scripts/5000-maildir/5000 new file mode 100644 index 000000000..5b763fcd3 --- /dev/null +++ b/test/scripts/5000-maildir/5000 @@ -0,0 +1,58 @@ +# exim quota + warn threshold with maildir +exim -odi userx +maildir:maildir_ +This is a test message +**** +write test-data 100x60 +maildir:maildir_ +++++ +**** +exim -odi userx <test-data +**** +exim -odi userx <test-data +**** +exim -odi userx +maildir:maildir_tagged_ +tag:S370 +This is a test message +**** +sleep 1 +exim -odi userx +maildir:maildir_tagged_ +tag:,S=370 +This is a test message +**** +sleep 1 +exim -odi userx +maildir:maildir_tagged_ +tag:${if eq{0}{1}{rhubarb}fail} +This is a test message +**** +sleep 1 +# deliberate syntax fail +exim -odi userx +maildir:maildir_tagged_ +tag:${if eq{0}{1}{rhubarb} +This is a test message +**** +sleep 1 +# overlongname +exim -odi userx +maildir:maildir_tagged_ +tag:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +This is a test message +**** +sleep 1 +exim -odi userx +maildir:maildir_taggedX_ +tag:,S=10694953:2,S +**** +exim -d-all+transport -odi userx +maildir:maildir_taggedX_ +tag:,S=412:2,S +**** diff --git a/test/scripts/5000-maildir/5001 b/test/scripts/5000-maildir/5001 new file mode 100644 index 000000000..febf214c2 --- /dev/null +++ b/test/scripts/5000-maildir/5001 @@ -0,0 +1,9 @@ +# create_file = belowhome +mkdir test-empty +ln -s ../test-empty test-mail/link +exim -odi maildir-userx maildir-usery maildir-userz maildir-sub1 maildir-sub2 maildir-sub3 +To: userx + +Testing. +**** +no_message_check diff --git a/test/scripts/5000-maildir/5002 b/test/scripts/5000-maildir/5002 new file mode 100644 index 000000000..8b4b85529 --- /dev/null +++ b/test/scripts/5000-maildir/5002 @@ -0,0 +1,41 @@ +# quota and maildir +exim -odi userx@test.ex +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +**** +exim -odi userx@test.ex +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +**** +exim -odi qqq +. +**** +exim -odi userx@test.ex +. +**** +no_msglog_check diff --git a/test/scripts/5000-maildir/5003 b/test/scripts/5000-maildir/5003 new file mode 100644 index 000000000..851052e38 --- /dev/null +++ b/test/scripts/5000-maildir/5003 @@ -0,0 +1,71 @@ +# quota and maildir with the maildir++ folder stuff +mkdir test-mail/dir1 test-mail/dir2 test-mail/dir3 +touch test-mail/dir1/maildirfolder test-mail/dir2/maildirfolder test-mail/dir3/maildirfolder +exim -odi dir1@test.ex +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +**** +exim -odi dir2@test.ex +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +**** +exim -odi dir3@test.ex +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +This is a message of a reasonable size. Fifty here. +**** +no_msglog_check +no_message_check diff --git a/test/scripts/5000-maildir/5004 b/test/scripts/5000-maildir/5004 new file mode 100644 index 000000000..7317f4223 --- /dev/null +++ b/test/scripts/5000-maildir/5004 @@ -0,0 +1,4 @@ +# maildir_format forced for address_file +exim -d -odi userx@test.ex +Testing +**** diff --git a/test/scripts/5000-maildir/5005 b/test/scripts/5000-maildir/5005 new file mode 100644 index 000000000..ea7ccc360 --- /dev/null +++ b/test/scripts/5000-maildir/5005 @@ -0,0 +1,21 @@ +# maildir with maildirsize for quota handling +exim -d -odi nofile@test.ex +Message for nofile +**** +# Create a maildir and put a quota/size file in it, but the quota in the +# transport will override the value. +mkdir DIR/test-mail/userx +write DIR/test-mail/userx/maildirsize +50S,2C +**** +# Now try some deliveries +exim -d -odi userx@test.ex +Short message +**** +exim -d -odi userx@test.ex +A slightly longer message +**** +exim -d -odi userx@test.ex +A slightly longer message +**** +no_msglog_check diff --git a/test/scripts/5000-maildir/5006 b/test/scripts/5000-maildir/5006 new file mode 100644 index 000000000..253ba1bba --- /dev/null +++ b/test/scripts/5000-maildir/5006 @@ -0,0 +1,5 @@ +# maildir with maildirsize when no quota set +exim -d -odi userx@test.ex +Short message +**** +no_msglog_check diff --git a/test/scripts/5000-maildir/REQUIRES b/test/scripts/5000-maildir/REQUIRES new file mode 100644 index 000000000..2b5a3c0ce --- /dev/null +++ b/test/scripts/5000-maildir/REQUIRES @@ -0,0 +1 @@ +transport appendfile/maildir diff --git a/test/scripts/5050-mbx/5050 b/test/scripts/5050-mbx/5050 new file mode 100644 index 000000000..a086efec4 --- /dev/null +++ b/test/scripts/5050-mbx/5050 @@ -0,0 +1,31 @@ +# 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 usery@test.ex +Second test message, no prefix. +**** +exim -odi userz@test.ex +Second test message, no prefix. +**** +exim -odi mbx_userz@test.ex +Test message with mbx_ 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. +**** diff --git a/test/scripts/5050-mbx/REQUIRES b/test/scripts/5050-mbx/REQUIRES new file mode 100644 index 000000000..f63aaf6e7 --- /dev/null +++ b/test/scripts/5050-mbx/REQUIRES @@ -0,0 +1 @@ +transport appendfile/mbx diff --git a/test/scripts/5100-lmtp-transport/5100 b/test/scripts/5100-lmtp-transport/5100 new file mode 100644 index 000000000..224943d44 --- /dev/null +++ b/test/scripts/5100-lmtp-transport/5100 @@ -0,0 +1,39 @@ +# LMTP over a pipe (using lmtp transport) +exim -odi userx +script: 01 +This is a test message. +**** +exim -odi userx +script: 02 +This is a test message. +**** +exim -odi userx +script: 03 +This is a test message. +**** +exim -odi userx +script: 04 +This is a test message. +**** +exim -odi userx jack jill tom dick harry +script: 05 +This is a test message. +**** +dump retry +exim -odi userx jack jill tom dick harry +script: 06 +This is a test message. +**** +exim -odi userx jack jill tom dick harry +script: 07 +This is a test message. +**** +exim -odi -DIGNORE_QUOTA=true jack jill +script: 08 +This is a test message. +**** +exim -odi -DIGNORE_QUOTA=true jack jill +script: 09 +This is a test message. +**** +no_msglog_check diff --git a/test/scripts/5100-lmtp-transport/5101 b/test/scripts/5100-lmtp-transport/5101 new file mode 100644 index 000000000..45a69abcd --- /dev/null +++ b/test/scripts/5100-lmtp-transport/5101 @@ -0,0 +1,8 @@ +# LMTP and transport filter and shadow transport +exim -odi userx jack jill +mailbox: copied +This is a test message. +**** +exim -odi userx jack jill +This is another test message. +**** diff --git a/test/scripts/5100-lmtp-transport/5102 b/test/scripts/5100-lmtp-transport/5102 new file mode 100644 index 000000000..a12e3164d --- /dev/null +++ b/test/scripts/5100-lmtp-transport/5102 @@ -0,0 +1,77 @@ +# LMTP over a socket (using lmtp transport) +need_ipv4 +# +server DIR/test.socket +220 +LHLO +220 OK +MAIL +250 OK +RCPT +250 OK +DATA +334 send more +. +250 OK +QUIT +250 OK +**** +exim -odi userx +This is a test message. +**** +server DIR/test.socket +*sleep 3 +**** +exim -odi userx +This is a test message. +**** +server DIR/test.socket +440 Sorry, there's a problem here +**** +exim -qf +**** +server DIR/test.socket +220 Welcome to this LMTP simulation +LHLO +250-Hello there +250 SIZE +MAIL FROM +550 Don't like that sender +QUIT +250 OK +**** +exim -qf +**** +server DIR/test.socket +220 Welcome to this LMTP simulation +LHLO +250-Hello there +250 SIZE +MAIL FROM +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +250 OK +RCPT TO +450 This one is delayed on RCPT +RCPT TO +550 This one is unknown on RCPT +RCPT TO +250 OK +DATA +354 Send it +. +250 Number 1 is OK +450 Number 2 is now delayed +550 Number 3 is now rejected +250 Number 6 is OK +QUIT +250 OK +**** +exim -odi lp1 lp2 lp3 lp4 lp5 lp6 +This is a test message +**** +no_msglog_check diff --git a/test/scripts/5100-lmtp-transport/5103 b/test/scripts/5100-lmtp-transport/5103 new file mode 100644 index 000000000..3d7ace50f --- /dev/null +++ b/test/scripts/5100-lmtp-transport/5103 @@ -0,0 +1,8 @@ +# transport filter command fails to execute +need_ipv4 +# +exim -odi userx +transport: t1 +Test 1 +**** +no_msglog_check diff --git a/test/scripts/5100-lmtp-transport/REQUIRES b/test/scripts/5100-lmtp-transport/REQUIRES new file mode 100644 index 000000000..2b68349b0 --- /dev/null +++ b/test/scripts/5100-lmtp-transport/REQUIRES @@ -0,0 +1 @@ +transport lmtp diff --git a/test/scripts/5200-queryprogram/5200 b/test/scripts/5200-queryprogram/5200 new file mode 100644 index 000000000..457bb958a --- /dev/null +++ b/test/scripts/5200-queryprogram/5200 @@ -0,0 +1,4 @@ +# top-level freezing mechanisms +exim -odi userx@test.ex +Text. +**** diff --git a/test/scripts/5200-queryprogram/5201 b/test/scripts/5200-queryprogram/5201 new file mode 100644 index 000000000..c46b2a775 --- /dev/null +++ b/test/scripts/5200-queryprogram/5201 @@ -0,0 +1,16 @@ +# freeze, move_frozen_messages +need_move_frozen_messages +exim -odq userx +**** +sudo exim -Mf $msg1 +**** +exim -q +**** +exim -odi freeze +**** +exim -odi anything +**** +exim -odi notfrozen +Test +**** +no_message_check diff --git a/test/scripts/5200-queryprogram/5202 b/test/scripts/5200-queryprogram/5202 new file mode 100644 index 000000000..b171f3b95 --- /dev/null +++ b/test/scripts/5200-queryprogram/5202 @@ -0,0 +1,9 @@ +# freeze, move_frozen_messages, split spool +need_move_frozen_messages +exim -odi freeze +**** +exim -odi anything +**** +# Attempt to remove the subdirectories; this will fail if they still +# have anything in them, and so provoke an error. +sudo rmdir spool/input/* spool/msglog/* diff --git a/test/scripts/5200-queryprogram/5203 b/test/scripts/5200-queryprogram/5203 new file mode 100644 index 000000000..4441fc40b --- /dev/null +++ b/test/scripts/5200-queryprogram/5203 @@ -0,0 +1,5 @@ +# open file descriptor test +exim -odi userx@remote.domain +Test message +. +**** diff --git a/test/scripts/5200-queryprogram/5204 b/test/scripts/5200-queryprogram/5204 new file mode 100644 index 000000000..593ce82eb --- /dev/null +++ b/test/scripts/5200-queryprogram/5204 @@ -0,0 +1,28 @@ +# queryprogram +1 +exim -bt '"ACCEPT hosts=localhost lookup=byname"@some.host' +**** +2 +exim -d-all+route -bt '"DECLINE cannot route this one (DECLINE)"@some.host' +**** +2 +exim -d-all+route -bt '"FAIL cannot route this one (FAIL)"@some.host' +**** +1 +exim -d-all+route -bt '"ERROR cannot route this one (ERROR)"@some.host' +**** +1 +exim -d-all+route -bt '"DEFER cannot route this one (DEFER)"@some.host' +**** +exim -d-all+route -bt '"ACCEPT transport = other_smtp hosts=ten-1.test.ex"@some.host' +**** +exim -d-all+route -bt PASS@some.host +**** +1 +exim -d-all+route -bt '"FREEZE cannot route this one (FREEZE)"@some.host' +**** +exim -d-all+route -bt '"REDIRECT postmaster@test.ex"@some.host' +**** +exim -odi '"FAIL cannot route this one (FAIL)"@some.host' +Test message +**** diff --git a/test/scripts/5200-queryprogram/5205 b/test/scripts/5200-queryprogram/5205 new file mode 100644 index 000000000..d014baff5 --- /dev/null +++ b/test/scripts/5200-queryprogram/5205 @@ -0,0 +1,4 @@ +# ignore_target_hosts (byname) +1 +exim -bt userx@ten-3.test.ex +**** diff --git a/test/scripts/5200-queryprogram/5206 b/test/scripts/5200-queryprogram/5206 new file mode 100644 index 000000000..75d2110ed --- /dev/null +++ b/test/scripts/5200-queryprogram/5206 @@ -0,0 +1,4 @@ +# ignore_target_hosts (bydns) +1 +exim -bt userx@ten-3.test.ex +**** diff --git a/test/scripts/5200-queryprogram/5207 b/test/scripts/5200-queryprogram/5207 new file mode 100644 index 000000000..a0b6dffa0 --- /dev/null +++ b/test/scripts/5200-queryprogram/5207 @@ -0,0 +1,4 @@ +# check address_data is preserved +exim -odi userx@r6 userx@r7 +**** +no_msglog_check diff --git a/test/scripts/5200-queryprogram/5208 b/test/scripts/5200-queryprogram/5208 new file mode 100644 index 000000000..892ec29dd --- /dev/null +++ b/test/scripts/5200-queryprogram/5208 @@ -0,0 +1,3 @@ +# /MX in a list of hosts +exim -DLIST=mxt8.test.ex/MX -bt x@query.program +**** diff --git a/test/scripts/5200-queryprogram/5209 b/test/scripts/5200-queryprogram/5209 new file mode 100644 index 000000000..136e413f8 --- /dev/null +++ b/test/scripts/5200-queryprogram/5209 @@ -0,0 +1,4 @@ +# queryprogram and long return lines +2 +exim -bt x@y +**** diff --git a/test/scripts/5200-queryprogram/REQUIRES b/test/scripts/5200-queryprogram/REQUIRES new file mode 100644 index 000000000..ecc95ade0 --- /dev/null +++ b/test/scripts/5200-queryprogram/REQUIRES @@ -0,0 +1 @@ +router queryprogram diff --git a/test/scripts/5300-ipliteral/5300 b/test/scripts/5300-ipliteral/5300 new file mode 100644 index 000000000..fba34c471 --- /dev/null +++ b/test/scripts/5300-ipliteral/5300 @@ -0,0 +1,23 @@ +# domain literals (IPv4) +need_ipv4 +# +exim -bt x@[V4NET.9.8.7] x@[127.0.0.1] +**** +1 +exim -DALLOW=false -odq -f 'x@[10.9.8.7]' zz +**** +0 +exim -odq -f 'y@[10.9.8.7]' zz +**** +0 +exim -bp +**** +0 +exim -odq -bs +MAIL FROM:<> +RCPT TO:<x@[1.2.3.4]> +RCPT TO:<x@[ipv4:1.2.3.4]> +quit +**** +no_msglog_check + diff --git a/test/scripts/5300-ipliteral/5301 b/test/scripts/5300-ipliteral/5301 new file mode 100644 index 000000000..300b4f0d0 --- /dev/null +++ b/test/scripts/5300-ipliteral/5301 @@ -0,0 +1,14 @@ +# domain literals (IPv6) +need_ipv6 +# +exim -bt x@[abcd::dcba] x@[IPv6:cba::abc] +**** +exim -DD6=disable_ipv6 -bt x@[abcd::dcba] x@[IPv6:cba::abc] +**** +0 +exim -odq -bs +MAIL FROM:<> +RCPT TO:<x@[3ffe:ffff:836f:0a00:000a:0800:200a:c031]> +RCPT TO:<x@[ipv6:3ffe:ffff:836f:0a00:000a:0800:200a:c031]> +quit +**** diff --git a/test/scripts/5300-ipliteral/REQUIRES b/test/scripts/5300-ipliteral/REQUIRES new file mode 100644 index 000000000..fde468626 --- /dev/null +++ b/test/scripts/5300-ipliteral/REQUIRES @@ -0,0 +1 @@ +router ipliteral diff --git a/test/scripts/9000-LDAP/9000 b/test/scripts/9000-LDAP/9000 new file mode 100644 index 000000000..0924b79a5 --- /dev/null +++ b/test/scripts/9000-LDAP/9000 @@ -0,0 +1,175 @@ +# LDAP lookups - expects specific data +# +LDAPTLS_REQCERT=never exim -be +Expect "Hazel" +\${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{\$value}fail} +${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} + +DN is: $ldap_dn + +Expect "Hazel" (Unix socket interface) +\${lookup ldap {ldapi://%2Ftmp%2Fldap.sock/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldapi://%2Ftmp%2Fldap.sock/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} + +Expect syntax failure +${lookup ldap {X=y ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} + +Expect "Hazel" +\${lookup ldap {time=1 ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{\$value}fail} +${lookup ldap {time=1 ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} + +Expect "manager" followed by "Hazel" 5 times +\${lookup ldapm {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{\$value}fail} +${lookup ldapm {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{$value}fail} + +DN is: $ldap_dn + +Expect "manager" followed by "Hazel" +\${lookup ldapm {Size=2 ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{\$value}fail} +${lookup ldapm {Size=2 ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{$value}fail} + +Expect "manager" followed by "Hazel" 5 times +\${lookup ldapm {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{\$value}fail} +${lookup ldapm {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{$value}fail} + +Expect "manager" +\${lookup ldap {size=1 ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{\$value}fail} +${lookup ldap {size=1 ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{$value}fail} + +Expect too many results error +${lookup ldap {size=0 time=0 ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{$value}fail} + +Expect "manager" +\${lookup ldap {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{\$value}fail} +${lookup ldap {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{$value}fail} + +Expect invalid credentials +\${lookup ldap {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=known ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{\$value}fail} +${lookup ldap {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=known ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{$value}fail} + +cn="Philip Hazel" sn=Hazel +\${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?sn,cn?sub?(cn=Philip%20Hazel)}{\$value}fail} +${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?sn,cn?sub?(cn=Philip%20Hazel)}{$value}fail} + +cn="Philip Hazel" sn=Hazel objectClass=person +\${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK??sub?(cn=Philip%20Hazel)}{\$value}fail} +${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK??sub?(cn=Philip%20Hazel)}{$value}fail} + +P Hazel, Phil Hazel +\${lookup ldapm {ldap:///o=University%20of%20Cambridge,c=UK?cn?sub?(cn=Phil%20Hazel)}{\$value}fail} +${lookup ldapm {ldap:///o=University%20of%20Cambridge,c=UK?cn?sub?(cn=Phil%20Hazel)}{$value}fail} + +cn="P Hazel" cn="Phil Hazel" sn=Hazel objectClass=person +\${lookup ldapm {ldap:///o=University%20of%20Cambridge,c=UK??sub?(cn=Phil%20Hazel)}{\$value}fail} +${lookup ldapm {ldap:///o=University%20of%20Cambridge,c=UK??sub?(cn=Phil%20Hazel)}{$value}fail} + +cn=P Hazel, o=University of Cambridge, c=UK +\${lookup ldapdn {ldap:///o=University%20of%20Cambridge,c=UK??sub?(cn=manager)}{\$value}fail} +${lookup ldapdn {ldap:///o=University%20of%20Cambridge,c=UK??sub?(cn=manager)}{$value}fail} + +Expect too many results error +${lookup ldapdn {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{$value}fail} + +Expect "yes" +\${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect "no" +\${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=known ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=known ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect "no" +\${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass= ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass= ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect "no" +\${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=known ldaps://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=known ldaps://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect failure to contact server +\${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=known ldaps://127.0.0.1:9999/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=known ldaps://127.0.0.1:9999/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect "yes" +\${if ldapauth { size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth { size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect "yes" +\${if ldapauth { size=1 time=0 user=cn%3dmanager%2co%3DUniversity%20of%20Cambridge%2Cc%3dUK pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth { size=1 time=0 user=cn%3dmanager%2co%3DUniversity%20of%20Cambridge%2Cc%3dUK pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect syntax error +\${lookup ldap {ldapz:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldapz:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} + +Expect error for missing user +\${if ldapauth {size=1 time=0 pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth {size=1 time=0 pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect error for missing password +\${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect "no" because of empty password +\${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass="" ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth {size=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass="" ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} + +Expect "FAILED" because no such object +\${lookup ldap {ldap:///o=JUNK}{$value}{FAILED}} +${lookup ldap {ldap:///o=JUNK}{$value}{FAILED}} + +Expect "P*Hazel (starry)" +\${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?cn?sub?(cn=P%5C2AHazel*)}{\$value}fail} +${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?cn?sub?(cn=P%5C2AHazel*)}{$value}fail} + +DN is: $ldap_dn + +Expect "P\,Hazel" +\${lookup ldap {ldap:///cn=P%5C%2CHazel,o=University%20of%20Cambridge,c=UK?cn?sub?(cn=*)}{\$value}fail} +${lookup ldap {ldap:///cn=P%5C%2CHazel,o=University%20of%20Cambridge,c=UK?cn?sub?(cn=*)}{$value}fail} +**** +exim -d -be +Expect syntax error +\${if ldapauth { soze=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth { soze=1 time=0 user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +**** +exim -d -be +Expect syntax error +\${if ldapauth { size=1 time=0 user"cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +${if ldapauth { size=1 time=0 user"cn=manager,o=University of Cambridge,c=UK" pass=secret ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=*)}{yes}{no}} +**** +LDAPTLS_REQCERT=never exim -d-all+lookup -be +Expect 5 x "Hazel" +${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldapi://%2Ftmp%2Fldap.sock/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldap://%2Ftmp%2Fldap.sock/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldaps://%2Ftmp%2Fldap.sock/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} + +Expect 2 x "Hazel" (using ldaps) +\${lookup ldap {user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldaps://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {user="cn=manager,o=University of Cambridge,c=UK" pass=secret ldaps://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {user="cn=manager,o=University of Cambridge,c=UK" pass="secret" ldaps://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +**** +exim -DLDAPSERVERS=ldap_default_servers=127.0.0.1 -d-all+lookup -be +Expect 2 x "Hazel" +${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldapi://%2Ftmp%2Fldap.sock/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +**** +LDAPTLS_REQCERT=never exim -DLDAPSERVERS=ldap_default_servers=/tmp/ldap.sock -d-all+lookup -be +Expect 3 x "Hazel" +${lookup ldap {ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldapi://%2Ftmp%2Fldap.sock/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {dereference=always ldap:///o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} + +Expect errors +\${lookup ldap {ldapi://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {ldapi://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} + +\${lookup ldap {user="cn=manager,o=University of Cambridge,c=UK" pass="se\"cret" ldaps://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +${lookup ldap {user="cn=manager,o=University of Cambridge,c=UK" pass=${quote:se"cret} ldaps://127.0.0.1/o=University%20of%20Cambridge,c=UK?sn?sub?(cn=Philip%20Hazel)}{$value}fail} +**** +exim -be +Expect ldap_search to fail +${lookup ldap {ldap:///o=top?mailRoutingAddress,mailHost,objectClass?sub?(&(mailLocalAddress=3-1546081-domain.net?wendling@stderr.efficientimpacte.com)(objectClass=inetLocalMailRecipient))}{$value}fail} +**** diff --git a/test/scripts/9000-LDAP/9001 b/test/scripts/9000-LDAP/9001 new file mode 100644 index 000000000..1e385cd1b --- /dev/null +++ b/test/scripts/9000-LDAP/9001 @@ -0,0 +1,3 @@ +# hide LDAP password in log after expansion failure (no LDAP needed) +exim -odi userx +**** diff --git a/test/scripts/9000-LDAP/REQUIRES b/test/scripts/9000-LDAP/REQUIRES new file mode 100644 index 000000000..941855d59 --- /dev/null +++ b/test/scripts/9000-LDAP/REQUIRES @@ -0,0 +1 @@ +lookup ldap diff --git a/test/scripts/9100-MySQL/9100 b/test/scripts/9100-MySQL/9100 new file mode 100644 index 000000000..3121ca950 --- /dev/null +++ b/test/scripts/9100-MySQL/9100 @@ -0,0 +1,22 @@ +# mysql lookups - expects specific data +exim -d-all+lookup -be +${lookup mysql {select name from them where id='ph10';}} +${lookup mysql {select name from them where id='ph10';}} +${lookup mysql {select name from them where id='xxxx';}} +${lookup mysql {select name from them where id='nothing';}} +${lookup mysql {select id,name from them where id='nothing';}} +${lookup mysql {delete from them where id='nonexist';}} +${lookup mysql {select * from them where id='quote';}} +${lookup mysql {select * from them where id='filter';}} +${lookup mysql {select * from them where id='quote2';}} +${lookup mysql {select * from them where id='nlonly';}} +**** +exim -d -bh 10.0.0.0 +mail from:<a@b> +rcpt to:<c@d> +quit +**** +exim -odi -d ph10 +Test message +. +**** diff --git a/test/scripts/9200-PostgreSQL/9200 b/test/scripts/9200-PostgreSQL/9200 new file mode 100644 index 000000000..2fd81f5e4 --- /dev/null +++ b/test/scripts/9200-PostgreSQL/9200 @@ -0,0 +1,25 @@ +# pgsql lookups - expects specific data +exim -d-all+lookup -be +${lookup pgsql {select name from them where id='ph10';}} +${lookup pgsql {select name from them where id='ph10';}} +${lookup pgsql {select name from them where id='xxxx';}} +${lookup pgsql {select name from them where id='nothing';}} +${lookup pgsql {select id,name from them where id='nothing';}} +${lookup pgsql {delete from them where id='nonexist';}} +${lookup pgsql {select * from them where id='quote2';}} +${lookup pgsql {select * from them where id='newline';}} +${lookup pgsql {select * from them where id='tab';}} +**** +exim -d -bh 10.0.0.0 +mail from:<a@b> +rcpt to:<c@d> +rcpt to:<c@d> +quit +**** +exim -odi -d CALLER +Test message +. +**** +exim -DSERVERS=\(/tmp/.s.PGSQL.5432\)/test/ph10/ -d-all+lookup -be +${lookup pgsql {select name from them where id='CALLER';}} +**** diff --git a/test/scripts/9300-Cyrus-SASL/9300 b/test/scripts/9300-Cyrus-SASL/9300 new file mode 100644 index 000000000..4be6c17c0 --- /dev/null +++ b/test/scripts/9300-Cyrus-SASL/9300 @@ -0,0 +1,22 @@ +# Cyrus SASL authentication (server only) +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +EHLO xxxx +??? 250- +??? 250- +??? 250- +??? 250- +??? 250 +AUTH PLAIN AHBoMTAAc2VjcmV0 +??? 535 +AUTH ANONYMOUS +??? 334 +ph10 +??? 235 +quit +??? 221 +**** +killdaemon +no_msglog_check diff --git a/test/scripts/9300-Cyrus-SASL/REQUIRES b/test/scripts/9300-Cyrus-SASL/REQUIRES new file mode 100644 index 000000000..f6c49fc42 --- /dev/null +++ b/test/scripts/9300-Cyrus-SASL/REQUIRES @@ -0,0 +1 @@ +authenticator cyrus_sasl diff --git a/test/scripts/9400-local_scan/9400 b/test/scripts/9400-local_scan/9400 new file mode 100644 index 000000000..aa5bc9214 --- /dev/null +++ b/test/scripts/9400-local_scan/9400 @@ -0,0 +1,360 @@ +# local_scan() miscellaneous tests +exim -odi -bs +mail from:<x@y> +rcpt to:<userx@test.ex> +data +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: reject +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: reject this message isn't wanted +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: reject this message isn't wanted + and we tell it on two lines +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: tempreject +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: tempreject this message isn't wanted just now +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: sendto +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: sendto usery@test.ex +Testing, testing, was originally to userx. +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: sendto *this is a blackhole message* +Testing, testing, was originally to userx. +. +quit +**** +1 +exim -odi -f test-local-scan@y userx@test.ex +local-scan: reject this message isn't wanted +Testing, testing, local message (1) +. +**** +exim -odi -oee -f test-local-scan@y userx@test.ex +local-scan: reject this message isn't wanted +Testing, testing, local message (2) +. +**** +1 +exim -odi -oep -f test-local-scan@y userx@test.ex +local-scan: reject this message isn't wanted +Testing, testing, local message (3) +. +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: accept A=orses b=mutton +Testing, testing +. +quit +**** +1 +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan:timeout +test test +. +quit +**** +1 +exim -odi -oep -f test-local-scan@y userx@test.ex +local-scan: timeout +test test +. +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: sendto bounce@test.ex exbounce@test.ex +Testing, testing, was originally to userx. +Sent to bounce@test.ex; bounce should go to exbounce. +. +quit +**** +2 +exim -odi -bS +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: reject not wanted -bS +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: accept A=orses b=mutton + c=forthighlanders + some newlines in here +Testing, testing +. +quit +**** +exim -odi -N -d-all+receive -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +. +quit +**** +exim -odi -N -d-all+local_scan -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +. +quit +**** +2 +exim -odi -bS +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: reject_nologhdr not wanted -bS +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: tempreject_nologhdr +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: accept_expand sender=$sender_address +Testing, testing +. +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: accept_expand sender=$rhubarb +Testing, testing +. +quit +**** +exim -bP local_scan +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: accept_freeze +Testing, testing +. +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: accept_queue +Testing, testing +. +quit +**** +exim -bp +**** +exim -d-all+local_scan -bh 1.2.3.4 +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: accept_freeze +Testing, testing +. +quit +**** +exim -d-all+local_scan -bh 1.2.3.4 +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: accept_test_lists +Testing, testing +. +quit +**** +1 +exim -d-all+local_scan -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: crash +Testing, testing +. +quit +**** +ls DIR/spool/input +exim -odq -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: sendto unqualified +Testing, testing, was originally to userx. +Sent to unqualified address +. +quit +**** +exim -bp +**** +exim -M $msg3 +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: header_remove 2 remove-me +remove-me: this is the first one +remove-me : this is the second one +remove-me : this is the third one + +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: header_remove 0 remove-me +remove-me: this is the first one +remove-me : this is the second one +remove-me : this is the third one + +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: header_add_at_position TT received X-new: added + +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: header_add_at_position FT received X-new: added + +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: header_add_at_position FT From X-new: added + +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: header_add_at_position FT Non-exist X-new: added + +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: remove userx@test.ex + +Testing, testing +. +quit +**** +exim -odi -bs +mail from:<test-local-scan@y> +rcpt to:<userx@test.ex> +data +local-scan: remove abcd@test.ex + +Testing, testing +. +quit +**** +no_msglog_check diff --git a/test/scripts/9400-local_scan/9401 b/test/scripts/9400-local_scan/9401 new file mode 100644 index 000000000..c310d09a4 --- /dev/null +++ b/test/scripts/9400-local_scan/9401 @@ -0,0 +1,14 @@ +# -R and spool pollution +exim -odq -f test-local-scan@test.ex userx +local-scan: accept This is text for the local scan returned header + and I am going to make sure that it is quite long +**** +exim -odq userx +Message 2 +. +**** +exim -Rf userx +**** +sudo perl DIR/aux-fixed/9401.perl +**** +no_msglog_check diff --git a/test/scripts/9400-local_scan/9402 b/test/scripts/9400-local_scan/9402 new file mode 100644 index 000000000..a4345acce --- /dev/null +++ b/test/scripts/9400-local_scan/9402 @@ -0,0 +1,36 @@ +# local_scan() smtp_printf() and smtp_fflush() +need_ipv4 +# +exim -DSERVER=server -bd -oX PORT_D +**** +client -t2 127.0.0.1 PORT_D +??? 220 +ehlo foobar +??? 250- +??? 250- +??? 250- +??? 250 +mail from:<test-local-scan@y> +??? 250 +rcpt to:<x@y> +??? 250 +data +??? 354 +local-scan: reject rhubarb rhubarb +. +??? 550 +mail from:<test-local-scan@y> +??? 250 +rcpt to:<x@y> +??? 250 +data +??? 354 +local-scan: teergrube +. +??? 550- +??? 550- +**** +# Wait because of the teergrube +sleep 3 +killdaemon +no_msglog_check diff --git a/test/scripts/9450-memory/9450 b/test/scripts/9450-memory/9450 new file mode 100644 index 000000000..fb6cd683f --- /dev/null +++ b/test/scripts/9450-memory/9450 @@ -0,0 +1,3 @@ +# Memory handling for lookups that build long strings +exim -d-all+memory -bt alias +**** diff --git a/test/scripts/9900-testing/9900 b/test/scripts/9900-testing/9900 new file mode 100644 index 000000000..0ed4bab6e --- /dev/null +++ b/test/scripts/9900-testing/9900 @@ -0,0 +1,64 @@ +# retry times when no IPv6 connectivity +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 +. +250 OK +QUIT +250 OK +**** +# This should successfully send to the IPv4 address, after failing to +# connect to the IPv6 address. +exim -odi userx@mx46cd.test.ex +First message +**** +# Let the IPv6 address time out +sleep 2 +# +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 +**** +# This should also be successful +exim -odi userx@mx46cd.test.ex +Second message +**** +# +dump retry +# The IPv6 address has timed out, but the IPv4 address should still be OK +exim -odi userx@mx46cd.test.ex +Third message +**** +dump retry +exim -q +**** +exim -q +**** +exim -q +**** +exim -q +**** +exim -q +**** diff --git a/test/scripts/9900-testing/9901 b/test/scripts/9900-testing/9901 new file mode 100644 index 000000000..b9943ce2c --- /dev/null +++ b/test/scripts/9900-testing/9901 @@ -0,0 +1,26 @@ +# long routing delay in message on reused connection (server timeout) +# This test is problematical - trying to cause a timeout in a server for the +# 2nd message down the same connection. Works on Linux, but does different +# things on FreeBSD. +# +need_ipv4 +# +exim -DCOM=# -DSERVER=server -bd -oX PORT_D +**** +exim -odi -odqs ok@no.delay +Message 1 +**** +exim -odi -odqs ok@no.delay +Message 2 +**** +sudo exim -Mar $msg2 delay@2.test.again.dns +**** +# Remove the retry data so that we do attempt the routing during +# delivery. That slows it down enough for the server to time out. +# +# sudo rm spool/db/retry +exim -q -d-all+route+dns +**** +killdaemon +dump retry +no_msglog_check diff --git a/test/scripts/9900-testing/9902 b/test/scripts/9900-testing/9902 new file mode 100644 index 000000000..d20ade8ee --- /dev/null +++ b/test/scripts/9900-testing/9902 @@ -0,0 +1,15 @@ +# host name lookup order +# NOT WORKING +echo THIS TEST DOES NOT WORK +exim -d-all+lookup+dns -bh V4NET.0.0.1 +quit +**** +exim -DORDER='host_lookup_order=byaddr:bydns' -d-all+lookup+dns -bh V4NET.0.0.1 +quit +**** +exim -d-all+lookup+dns -bh 1.2.3.4 +quit +**** +exim -DORDER='host_lookup_order=byaddr:bydns' -d-all+lookup+dns -bh 1.2.3.4 +quit +**** |