X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/f3ebb786e451da973560f1c9d8cdb151d25108b5..aae673d7db4b26e8c4a8cc3d59fe94de4c47ba16:/test/stderr/5420?ds=sidebyside diff --git a/test/stderr/5420 b/test/stderr/5420 index 9aefc2431..3b7c2ca78 100644 --- a/test/stderr/5420 +++ b/test/stderr/5420 @@ -1,30 +1,52 @@ Exim version x.yz .... +environment after trimming: + PATH= +adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys configuration file is TESTSUITE/test-config admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $tod_full ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) - in pipelining_advertise_hosts? yes (matched "*") + in pipelining_advertise_hosts? + list element: * + in pipelining_advertise_hosts? yes (matched "*") + in chunking_advertise_hosts? in chunking_advertise_hosts? no (end of list) - in tls_advertise_hosts? yes (matched "*") + in tls_advertise_hosts? + list element: * + in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -33,25 +55,45 @@ using ACL "cutthrough" processing "accept" (TESTSUITE/test-config 22) check control = cutthrough_delivery check verify = recipient -domain.com in "test.ex : *.test.ex"? no (end of list) +domain.com in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + domain.com in "test.ex : *.test.ex"? + ╎list element: test.ex + ╎list element: *.test.ex + domain.com in "test.ex : *.test.ex"? no (end of list) + end sublist local_domains domain.com in "! +local_domains"? yes (end of list) ╭considering: $local_part ├──expanding: $local_part ╰─────result: userx ╰──(tainted) -domain.com in "*"? yes (matched "*") +domain.com in "*"? + list element: * + domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ -domain.com in "test.ex : *.test.ex"? no (end of list) +domain.com in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + domain.com in "test.ex : *.test.ex"? + ╎list element: test.ex + ╎list element: *.test.ex + domain.com in "test.ex : *.test.ex"? no (end of list) + end sublist local_domains domain.com in "! +local_domains"? yes (end of list) ╭considering: $local_part ├──expanding: $local_part ╰─────result: userx ╰──(tainted) -domain.com in "*"? yes (matched "*") -Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected +domain.com in "*"? + list element: * + domain.com in "*"? yes (matched "*") +Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... 127.0.0.1 in hosts_try_fastopen? + list element: + connected ╭considering: $primary_hostname ├──expanding: $primary_hostname ╰─────result: myhost.test.ex @@ -65,52 +107,110 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP + ╭considering: ${if and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ╭considering: $host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├considering: }{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: $host + ╰─────result: 127.0.0.1 + ╭considering: .outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├───────text: .outlook.com + ├considering: \$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├backslashed: '\$' + ├considering: }} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: .outlook.com\$ + ╰─────result: .outlook.com$ + compiled RE '.outlook.com$' not found in local cache + compiling RE '.outlook.com$' + compiled RE '.outlook.com$' saved in local cache + ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├───scanning: }{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: $item + ├─────result: + ╰───skipping: result is not used + ╭───scanning: \N^250-([\w.]+)\s\N}}} {$1}} + ├──protected: ^250-([\w.]+)\s + ├───scanning: }}} {$1}} + ├──expanding: \N^250-([\w.]+)\s\N + ├─────result: ^250-([\w.]+)\s + ╰───skipping: result is not used + ├──condition: and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} + ├─────result: false + ╭───scanning: $1}} + ├───scanning: }} + ├──expanding: $1 + ├─────result: + ╰───skipping: result is not used + ├──expanding: ${if and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ╰─────result: ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: userx ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: false ╭───scanning: *}{:}} + ├───────text: * + ├───scanning: }{:}} ├──expanding: * ├─────result: * ╰───skipping: result is not used ╭considering: :}} + ├───────text: : + ├considering: }} ├──expanding: : ╰─────result: : ├──expanding: ${if eq {$address_data}{usery}{*}{:}} ╰─────result: : +127.0.0.1 in hosts_avoid_tls? + list element: 127.0.0.1 in hosts_avoid_tls? no (end of list) ╭considering: ${if eq {$address_data}{userz}{*}{:}} ╭considering: $address_data}{userz}{*}{:}} + ├considering: }{userz}{*}{:}} ├──expanding: $address_data ╰─────result: userx ╰──(tainted) ╭considering: userz}{*}{:}} + ├───────text: userz + ├considering: }{*}{:}} ├──expanding: userz ╰─────result: userz ├──condition: eq {$address_data}{userz} ├─────result: false ╭───scanning: *}{:}} + ├───────text: * + ├───scanning: }{:}} ├──expanding: * ├─────result: * ╰───skipping: result is not used ╭considering: :}} + ├───────text: : + ├considering: }} ├──expanding: : ╰─────result: : ├──expanding: ${if eq {$address_data}{userz}{*}{:}} ╰─────result: : +127.0.0.1 in hosts_verify_avoid_tls? + list element: 127.0.0.1 in hosts_verify_avoid_tls? no (end of list) SMTP>> STARTTLS cmd buf flush ddd bytes SMTP<< 220 TLS go ahead + list element: * 127.0.0.1 in tls_verify_hosts? no (option unset) -127.0.0.1 in tls_try_verify_hosts? yes (matched "*") -127.0.0.1 in tls_verify_cert_hostnames? yes (matched "*") +127.0.0.1 in tls_try_verify_hosts? + list element: * + 127.0.0.1 in tls_try_verify_hosts? yes (matched "*") +127.0.0.1 in tls_verify_cert_hostnames? + list element: * + 127.0.0.1 in tls_verify_cert_hostnames? yes (matched "*") SMTP>> EHLO myhost.test.ex cmd buf flush ddd bytes SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4] @@ -122,16 +222,16 @@ cmd buf flush ddd bytes using PIPELINING not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM: + SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes sync_responses expect mail SMTP<< 250 OK -sync_responses expect rcpt +sync_responses expect rcpt for userx@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ -processing "accept" (TESTSUITE/test-config 54) +processing "accept" (TESTSUITE/test-config 55) accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA @@ -141,7 +241,15 @@ end of inline ACL: ACCEPT ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 ╭considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: Received: + ├considering: ${if def:sender_rcvhost {from $sender_rcvhost + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -150,7 +258,30 @@ end of inline ACL: ACCEPT ├─────result: false ╭───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: from + ├───scanning: $sender_rcvhost + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -161,7 +292,7 @@ end of inline ACL: ACCEPT ╰───skipping: result is not used ╭considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -169,25 +300,79 @@ end of inline ACL: ACCEPT ├──condition: def:sender_ident ├─────result: true ╭considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: from + ├considering: ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ╎╭considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std ╎ }}(Exim $version_number) ╎ ${if def:sender_address {(envelope-from <$sender_address>) ╎ }}id $message_exim_id${if def:received_for { ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├───item-res: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (helo= + ├considering: $sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -197,20 +382,89 @@ end of inline ACL: ACCEPT ╰─────result: (helo=myhost.test.ex) ╰──(tainted) + ├───item-res: (helo=myhost.test.ex) + + ╰──(tainted) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} ╰─────result: from CALLER (helo=myhost.test.ex) ╰──(tainted) + ├───item-res: from CALLER (helo=myhost.test.ex) + + ╰──(tainted) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:received_protocol ├─────result: true - ╭considering: with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╭considering: with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: with + ├considering: $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├───item-res: with local-esmtp + ╰──(tainted) + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├───item-res: + ╰──(tainted) + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: tls $tls_in_cipher_std @@ -218,32 +472,97 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: tls + ├───scanning: $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: tls $tls_in_cipher_std ├─────result: tls ╰───skipping: result is not used + ├───item-res: + ╰──(tainted) + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from ) + ├───item-res: (envelope-from ) + + ╰──(tainted) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: for userx@domain.com ╰──(tainted) + ├───item-res: + for userx@domain.com + ╰──(tainted) ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -266,41 +585,64 @@ LOG: MAIN SMTP>> QUIT SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> +cmdlog: '220:EHLO:250-:STARTTLS:220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221' ----------- cutthrough shutdown (delivered) ------------ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss LOG: MAIN Completed LOG: smtp_connection MAIN - SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>> + SMTP connection from CALLER D=qqs closed by QUIT +>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +environment after trimming: + PATH= +adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys configuration file is TESTSUITE/test-config admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $tod_full ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) - in pipelining_advertise_hosts? yes (matched "*") + in pipelining_advertise_hosts? + list element: * + in pipelining_advertise_hosts? yes (matched "*") + in chunking_advertise_hosts? in chunking_advertise_hosts? no (end of list) - in tls_advertise_hosts? yes (matched "*") + in tls_advertise_hosts? + list element: * + in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -309,25 +651,45 @@ using ACL "cutthrough" processing "accept" (TESTSUITE/test-config 22) check control = cutthrough_delivery check verify = recipient -domain.com in "test.ex : *.test.ex"? no (end of list) +domain.com in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + domain.com in "test.ex : *.test.ex"? + ╎list element: test.ex + ╎list element: *.test.ex + domain.com in "test.ex : *.test.ex"? no (end of list) + end sublist local_domains domain.com in "! +local_domains"? yes (end of list) ╭considering: $local_part ├──expanding: $local_part ╰─────result: usery ╰──(tainted) -domain.com in "*"? yes (matched "*") +domain.com in "*"? + list element: * + domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ -domain.com in "test.ex : *.test.ex"? no (end of list) +domain.com in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + domain.com in "test.ex : *.test.ex"? + ╎list element: test.ex + ╎list element: *.test.ex + domain.com in "test.ex : *.test.ex"? no (end of list) + end sublist local_domains domain.com in "! +local_domains"? yes (end of list) ╭considering: $local_part ├──expanding: $local_part ╰─────result: usery ╰──(tainted) -domain.com in "*"? yes (matched "*") -Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected +domain.com in "*"? + list element: * + domain.com in "*"? yes (matched "*") +Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... 127.0.0.1 in hosts_try_fastopen? + list element: + connected ╭considering: $primary_hostname ├──expanding: $primary_hostname ╰─────result: myhost.test.ex @@ -341,40 +703,84 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP + ╭considering: ${if and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ╭considering: $host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├considering: }{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: $host + ╰─────result: 127.0.0.1 + ╭considering: .outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├───────text: .outlook.com + ├considering: \$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├backslashed: '\$' + ├considering: }} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: .outlook.com\$ + ╰─────result: .outlook.com$ + compiled RE '.outlook.com$' not found in local cache + compiling RE '.outlook.com$' + compiled RE '.outlook.com$' saved in local cache + ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├───scanning: }{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: $item + ├─────result: + ╰───skipping: result is not used + ╭───scanning: \N^250-([\w.]+)\s\N}}} {$1}} + ├──protected: ^250-([\w.]+)\s + ├───scanning: }}} {$1}} + ├──expanding: \N^250-([\w.]+)\s\N + ├─────result: ^250-([\w.]+)\s + ╰───skipping: result is not used + ├──condition: and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} + ├─────result: false + ╭───scanning: $1}} + ├───scanning: }} + ├──expanding: $1 + ├─────result: + ╰───skipping: result is not used + ├──expanding: ${if and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ╰─────result: ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: usery ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: true ╭considering: *}{:}} + ├───────text: * + ├considering: }{:}} ├──expanding: * ╰─────result: * ╭───scanning: :}} + ├───────text: : + ├───scanning: }} ├──expanding: : ├─────result: : ╰───skipping: result is not used ├──expanding: ${if eq {$address_data}{usery}{*}{:}} ╰─────result: * -127.0.0.1 in hosts_avoid_tls? yes (matched "*") +127.0.0.1 in hosts_avoid_tls? + list element: * + 127.0.0.1 in hosts_avoid_tls? yes (matched "*") 127.0.0.1 in hosts_avoid_pipelining? no (option unset) using PIPELINING not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM: + SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes sync_responses expect mail SMTP<< 250 OK -sync_responses expect rcpt +sync_responses expect rcpt for usery@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ -processing "accept" (TESTSUITE/test-config 54) +processing "accept" (TESTSUITE/test-config 55) accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA @@ -384,7 +790,15 @@ end of inline ACL: ACCEPT ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 ╭considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: Received: + ├considering: ${if def:sender_rcvhost {from $sender_rcvhost + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -393,7 +807,30 @@ end of inline ACL: ACCEPT ├─────result: false ╭───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: from + ├───scanning: $sender_rcvhost + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -404,7 +841,7 @@ end of inline ACL: ACCEPT ╰───skipping: result is not used ╭considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -412,25 +849,79 @@ end of inline ACL: ACCEPT ├──condition: def:sender_ident ├─────result: true ╭considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: from + ├considering: ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ╎╭considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std ╎ }}(Exim $version_number) ╎ ${if def:sender_address {(envelope-from <$sender_address>) ╎ }}id $message_exim_id${if def:received_for { ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├───item-res: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (helo= + ├considering: $sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -440,20 +931,89 @@ end of inline ACL: ACCEPT ╰─────result: (helo=myhost.test.ex) ╰──(tainted) + ├───item-res: (helo=myhost.test.ex) + + ╰──(tainted) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} ╰─────result: from CALLER (helo=myhost.test.ex) ╰──(tainted) + ├───item-res: from CALLER (helo=myhost.test.ex) + + ╰──(tainted) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:received_protocol ├─────result: true - ╭considering: with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╭considering: with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: with + ├considering: $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├───item-res: with local-esmtp + ╰──(tainted) + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├───item-res: + ╰──(tainted) + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: tls $tls_in_cipher_std @@ -461,32 +1021,97 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: tls + ├───scanning: $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: tls $tls_in_cipher_std ├─────result: tls ╰───skipping: result is not used + ├───item-res: + ╰──(tainted) + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from ) + ├───item-res: (envelope-from ) + + ╰──(tainted) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: for usery@domain.com ╰──(tainted) + ├───item-res: + for usery@domain.com + ╰──(tainted) ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -509,41 +1134,64 @@ LOG: MAIN SMTP>> QUIT SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> +cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221' ----------- cutthrough shutdown (delivered) ------------ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss LOG: MAIN Completed LOG: smtp_connection MAIN - SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>> + SMTP connection from CALLER D=qqs closed by QUIT +>>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +environment after trimming: + PATH= +adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys configuration file is TESTSUITE/test-config admin user in hosts_connection_nolog? no (option unset) LOG: smtp_connection MAIN SMTP connection from CALLER ╭considering: $smtp_active_hostname ESMTP Exim $version_number $tod_full + ├considering: ESMTP Exim $version_number $tod_full + ├───────text: ESMTP Exim + ├considering: $version_number $tod_full + ├considering: $tod_full + ├───────text: + ├considering: $tod_full ├──expanding: $smtp_active_hostname ESMTP Exim $version_number $tod_full ╰─────result: myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 in dsn_advertise_hosts? no (option unset) - in pipelining_advertise_hosts? yes (matched "*") + in pipelining_advertise_hosts? + list element: * + in pipelining_advertise_hosts? yes (matched "*") + in chunking_advertise_hosts? in chunking_advertise_hosts? no (end of list) - in tls_advertise_hosts? yes (matched "*") + in tls_advertise_hosts? + list element: * + in tls_advertise_hosts? yes (matched "*") ╭considering: ${if eq {SERVER}{server}{queue}{cutthrough}} ╭considering: SERVER}{server}{queue}{cutthrough}} + ├───────text: SERVER + ├considering: }{server}{queue}{cutthrough}} ├──expanding: SERVER ╰─────result: SERVER ╭considering: server}{queue}{cutthrough}} + ├───────text: server + ├considering: }{queue}{cutthrough}} ├──expanding: server ╰─────result: server ├──condition: eq {SERVER}{server} ├─────result: false ╭───scanning: queue}{cutthrough}} + ├───────text: queue + ├───scanning: }{cutthrough}} ├──expanding: queue ├─────result: queue ╰───skipping: result is not used ╭considering: cutthrough}} + ├───────text: cutthrough + ├considering: }} ├──expanding: cutthrough ╰─────result: cutthrough ├──expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} @@ -552,25 +1200,45 @@ using ACL "cutthrough" processing "accept" (TESTSUITE/test-config 22) check control = cutthrough_delivery check verify = recipient -domain.com in "test.ex : *.test.ex"? no (end of list) +domain.com in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + domain.com in "test.ex : *.test.ex"? + ╎list element: test.ex + ╎list element: *.test.ex + domain.com in "test.ex : *.test.ex"? no (end of list) + end sublist local_domains domain.com in "! +local_domains"? yes (end of list) ╭considering: $local_part ├──expanding: $local_part ╰─────result: usery ╰──(tainted) -domain.com in "*"? yes (matched "*") +domain.com in "*"? + list element: * + domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ -domain.com in "test.ex : *.test.ex"? no (end of list) +domain.com in "! +local_domains"? + list element: ! +local_domains + start sublist local_domains + domain.com in "test.ex : *.test.ex"? + ╎list element: test.ex + ╎list element: *.test.ex + domain.com in "test.ex : *.test.ex"? no (end of list) + end sublist local_domains domain.com in "! +local_domains"? yes (end of list) ╭considering: $local_part ├──expanding: $local_part ╰─────result: usery ╰──(tainted) -domain.com in "*"? yes (matched "*") -Connecting to 127.0.0.1 [127.0.0.1]:1225 from ip4.ip4.ip4.ip4 ... connected +domain.com in "*"? + list element: * + domain.com in "*"? yes (matched "*") +Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... 127.0.0.1 in hosts_try_fastopen? + list element: + connected ╭considering: $primary_hostname ├──expanding: $primary_hostname ╰─────result: myhost.test.ex @@ -584,40 +1252,84 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP + ╭considering: ${if and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ╭considering: $host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├considering: }{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: $host + ╰─────result: 127.0.0.1 + ╭considering: .outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├───────text: .outlook.com + ├considering: \$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├backslashed: '\$' + ├considering: }} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: .outlook.com\$ + ╰─────result: .outlook.com$ + compiled RE '.outlook.com$' not found in local cache + compiling RE '.outlook.com$' + compiled RE '.outlook.com$' saved in local cache + ╭───scanning: $item}{\N^250-([\w.]+)\s\N}}} {$1}} + ├───scanning: }{\N^250-([\w.]+)\s\N}}} {$1}} + ├──expanding: $item + ├─────result: + ╰───skipping: result is not used + ╭───scanning: \N^250-([\w.]+)\s\N}}} {$1}} + ├──protected: ^250-([\w.]+)\s + ├───scanning: }}} {$1}} + ├──expanding: \N^250-([\w.]+)\s\N + ├─────result: ^250-([\w.]+)\s + ╰───skipping: result is not used + ├──condition: and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} + ├─────result: false + ╭───scanning: $1}} + ├───scanning: }} + ├──expanding: $1 + ├─────result: + ╰───skipping: result is not used + ├──expanding: ${if and {{match{$host}{.outlook.com\$}} {match{$item}{\N^250-([\w.]+)\s\N}}} {$1}} + ╰─────result: ╭considering: ${if eq {$address_data}{usery}{*}{:}} ╭considering: $address_data}{usery}{*}{:}} + ├considering: }{usery}{*}{:}} ├──expanding: $address_data ╰─────result: usery ╰──(tainted) ╭considering: usery}{*}{:}} + ├───────text: usery + ├considering: }{*}{:}} ├──expanding: usery ╰─────result: usery ├──condition: eq {$address_data}{usery} ├─────result: true ╭considering: *}{:}} + ├───────text: * + ├considering: }{:}} ├──expanding: * ╰─────result: * ╭───scanning: :}} + ├───────text: : + ├───scanning: }} ├──expanding: : ├─────result: : ╰───skipping: result is not used ├──expanding: ${if eq {$address_data}{usery}{*}{:}} ╰─────result: * -127.0.0.1 in hosts_avoid_tls? yes (matched "*") +127.0.0.1 in hosts_avoid_tls? + list element: * + 127.0.0.1 in hosts_avoid_tls? yes (matched "*") 127.0.0.1 in hosts_avoid_pipelining? no (option unset) using PIPELINING not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM: + SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes sync_responses expect mail SMTP<< 250 OK -sync_responses expect rcpt +sync_responses expect rcpt for usery@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ -processing "accept" (TESTSUITE/test-config 54) +processing "accept" (TESTSUITE/test-config 55) accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA @@ -627,7 +1339,15 @@ end of inline ACL: ACCEPT ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 ╭considering: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: Received: + ├considering: ${if def:sender_rcvhost {from $sender_rcvhost + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -636,7 +1356,30 @@ end of inline ACL: ACCEPT ├─────result: false ╭───scanning: from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: from + ├───scanning: $sender_rcvhost + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───scanning: + }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -647,7 +1390,7 @@ end of inline ACL: ACCEPT ╰───skipping: result is not used ╭considering: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -655,25 +1398,79 @@ end of inline ACL: ACCEPT ├──condition: def:sender_ident ├─────result: true ╭considering: from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: from + ├considering: ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ╎╭considering: $sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╎ }}(Exim $version_number) + ╎ ${if def:sender_address {(envelope-from <$sender_address>) + ╎ }}id $message_exim_id${if def:received_for { + ╎ for $received_for}} + ╎├considering: } }}${if def:sender_helo_name {(helo=$sender_helo_name) + ╎ }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std ╎ }}(Exim $version_number) ╎ ${if def:sender_address {(envelope-from <$sender_address>) ╎ }}id $message_exim_id${if def:received_for { ╎ for $received_for}} ╎├──expanding: $sender_ident ╎╰─────result: CALLER + ├─────op-res: CALLER + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: from ${quote_local_part:$sender_ident} ╰─────result: from CALLER + ├───item-res: from CALLER + ├considering: ${if def:sender_helo_name {(helo=$sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (helo= + ├considering: $sender_helo_name) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -683,20 +1480,89 @@ end of inline ACL: ACCEPT ╰─────result: (helo=myhost.test.ex) ╰──(tainted) + ├───item-res: (helo=myhost.test.ex) + + ╰──(tainted) + ├considering: }}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) }} ╰─────result: from CALLER (helo=myhost.test.ex) ╰──(tainted) + ├───item-res: from CALLER (helo=myhost.test.ex) + + ╰──(tainted) + ├considering: by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: by + ├considering: $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:received_protocol ├─────result: true - ╭considering: with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + ╭considering: with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: with + ├considering: $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + ├considering: }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} ├──expanding: with $received_protocol ╰─────result: with local-esmtp + ├───item-res: with local-esmtp + ╰──(tainted) + ├considering: ${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├──expanding: ($tls_in_ver) + ├─────result: () + ╰───skipping: result is not used + ├───item-res: + ╰──(tainted) + ├considering: ${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: tls $tls_in_cipher_std @@ -704,32 +1570,97 @@ end of inline ACL: ACCEPT ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: tls + ├───scanning: $tls_in_cipher_std + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───scanning: + }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: + + ├───scanning: }}(Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: tls $tls_in_cipher_std ├─────result: tls ╰───skipping: result is not used + ├───item-res: + ╰──(tainted) + ├considering: (Exim $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: (Exim + ├considering: $version_number) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ) + ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: ) + + ├considering: ${if def:sender_address {(envelope-from <$sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { for $received_for}} + ├───────text: (envelope-from < + ├considering: $sender_address>) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├considering: >) + }}id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: >) + + ├considering: }}id $message_exim_id${if def:received_for { + for $received_for}} ├──expanding: (envelope-from <$sender_address>) ╰─────result: (envelope-from ) + ├───item-res: (envelope-from ) + + ╰──(tainted) + ├considering: id $message_exim_id${if def:received_for { + for $received_for}} + ├───────text: id + ├considering: $message_exim_id${if def:received_for { + for $received_for}} + ├considering: ${if def:received_for { + for $received_for}} ├──condition: def:received_for ├─────result: true ╭considering: for $received_for}} + ├───────text: + for + ├considering: $received_for}} + ├considering: }} ├──expanding: for $received_for ╰─────result: for usery@domain.com ╰──(tainted) + ├───item-res: + for usery@domain.com + ╰──(tainted) ├──expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_cipher_std { tls $tls_in_cipher_std + }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol }}${if def:tls_in_ver { ($tls_in_ver)}}${if def:tls_in_cipher_std { tls $tls_in_cipher_std }}(Exim $version_number) ${if def:sender_address {(envelope-from <$sender_address>) }}id $message_exim_id${if def:received_for { @@ -752,13 +1683,14 @@ LOG: MAIN SMTP>> QUIT SMTP<< 221 myhost.test.ex closing connection SMTP(close)>> +cmdlog: '220:EHLO:250-:MAIL|:RCPT:250:250:DATA:354:250:QUIT:221' ----------- cutthrough shutdown (delivered) ------------ LOG: MAIN <= CALLER@myhost.test.ex U=CALLER P=local-esmtp S=sss LOG: MAIN Completed LOG: smtp_connection MAIN - SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp (msg setup toplevel) terminating with rc=0 >>>>>>>>>>>>>>>> + SMTP connection from CALLER D=qqs closed by QUIT +>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> ******** SERVER ********