X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/e1d04f48a45c9f8e8ff75610003048f8ead73219..7d5055276a22a91de71104775ade236051cebefc:/test/stderr/5420 diff --git a/test/stderr/5420 b/test/stderr/5420 index 0f197afd1..2436aa14b 100644 --- a/test/stderr/5420 +++ b/test/stderr/5420 @@ -1,43 +1,59 @@ Exim version x.yz .... +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 - |__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 + ╭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 chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ╭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}} + ╰─────result: cutthrough using ACL "cutthrough" -processing "accept" +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"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: userx + ╭considering: $local_part + ├──expanding: $local_part + ╰─────result: userx + ╰──(tainted) domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -45,14 +61,15 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: userx + ╭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 - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex +Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... connected + ╭considering: $primary_hostname + ├──expanding: $primary_hostname + ╰─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -63,43 +80,94 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: userx - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: false - / scanning: *}{:}} - |__expanding: * - |_____result: * - \___skipping: result is not used - /considering: :}} - |__expanding: : - \_____result: : - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: : + ╭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? no (end of list) - /considering: ${if eq {$address_data}{userz}{*}{:}} - /considering: $address_data}{userz}{*}{:}} - |__expanding: $address_data - \_____result: userx - /considering: userz}{*}{:}} - |__expanding: userz - \_____result: userz - |__condition: eq {$address_data}{userz} - |_____result: false - / scanning: *}{:}} - |__expanding: * - |_____result: * - \___skipping: result is not used - /considering: :}} - |__expanding: : - \_____result: : - |__expanding: ${if eq {$address_data}{userz}{*}{:}} - \_____result: : + ╭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? no (end of list) SMTP>> STARTTLS cmd buf flush ddd bytes @@ -118,136 +186,370 @@ cmd buf flush ddd bytes using PIPELINING not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM: SIZE=ssss + SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes +sync_responses expect mail SMTP<< 250 OK +sync_responses expect rcpt for userx@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ -processing "accept" +processing "accept" (TESTSUITE/test-config 55) accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____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}} (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_rcvhost - |_____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}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: from $sender_rcvhost - - |_____result: from - - \___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}} (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_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}} (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}} (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 - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: (helo=$sender_helo_name) - - \_____result: (helo=myhost.test.ex) - - |__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) - - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (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 - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) - }}(Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: ($tls_cipher) - - |_____result: () - - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: (envelope-from <$sender_address>) - - \_____result: (envelope-from ) - - |__condition: def:received_for - |_____result: true - /considering: - for $received_for}} - |__expanding: - for $received_for - \_____result: - for userx@domain.com - |__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}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) - by myhost.test.ex with local-esmtp (Exim x.yz) - (envelope-from ) - id 10HmaX-0005vi-00 - for userx@domain.com + ╭considering: ${tod_full} + ├──expanding: ${tod_full} + ╰─────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_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 { + for $received_for}} + ├──condition: def:sender_rcvhost + ├─────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_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 { + for $received_for}} + ├──expanding: from $sender_rcvhost + + ├─────result: from + + ╰───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_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_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_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_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_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 { + for $received_for}} + ├──expanding: (helo=$sender_helo_name) + + ╰─────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_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 + }}(Exim $version_number) + ${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_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}} + ╰─────result: Received: from CALLER (helo=myhost.test.ex) + by myhost.test.ex with local-esmtp (Exim x.yz) + (envelope-from ) + id 10HmaX-0005vi-00 + for userx@domain.com + ╰──(tainted) ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ╭considering: ${tod_full} + ├──expanding: ${tod_full} + ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmaY-0005vi-00 LOG: MAIN - >> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] X=TLS1.x:xxxxRSA_AES_256_CBC_SHAnnn:256 CV=no C="250 OK id=10HmaY-0005vi-00" + >> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] X=TLS1.x:ke-RSA-AES256-SHAnnn:xxx CV=no C="250 OK id=10HmaY-0005vi-00" 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 @@ -255,47 +557,63 @@ LOG: MAIN Completed LOG: smtp_connection MAIN SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +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 - |__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 + ╭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 chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ╭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}} + ╰─────result: cutthrough using ACL "cutthrough" -processing "accept" +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"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ╭considering: $local_part + ├──expanding: $local_part + ╰─────result: usery + ╰──(tainted) domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -303,14 +621,15 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ╭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 - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex +Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... connected + ╭considering: $primary_hostname + ├──expanding: $primary_hostname + ╰─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -321,152 +640,428 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: usery - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: true - /considering: *}{:}} - |__expanding: * - \_____result: * - / scanning: :}} - |__expanding: : - |_____result: : - \___skipping: result is not used - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: * + ╭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_pipelining? no (option unset) using PIPELINING not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM: SIZE=ssss + SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes +sync_responses expect mail SMTP<< 250 OK +sync_responses expect rcpt for usery@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ -processing "accept" +processing "accept" (TESTSUITE/test-config 55) accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____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}} (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_rcvhost - |_____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}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: from $sender_rcvhost - - |_____result: from - - \___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}} (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_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}} (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}} (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 - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: (helo=$sender_helo_name) - - \_____result: (helo=myhost.test.ex) - - |__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) - - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (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 - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) - }}(Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: ($tls_cipher) - - |_____result: () - - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: (envelope-from <$sender_address>) - - \_____result: (envelope-from ) - - |__condition: def:received_for - |_____result: true - /considering: - for $received_for}} - |__expanding: - for $received_for - \_____result: - for usery@domain.com - |__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}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) - by myhost.test.ex with local-esmtp (Exim x.yz) - (envelope-from ) - id 10HmaZ-0005vi-00 - for usery@domain.com + ╭considering: ${tod_full} + ├──expanding: ${tod_full} + ╰─────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_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 { + for $received_for}} + ├──condition: def:sender_rcvhost + ├─────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_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 { + for $received_for}} + ├──expanding: from $sender_rcvhost + + ├─────result: from + + ╰───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_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_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_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_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_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 { + for $received_for}} + ├──expanding: (helo=$sender_helo_name) + + ╰─────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_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 + }}(Exim $version_number) + ${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_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}} + ╰─────result: Received: from CALLER (helo=myhost.test.ex) + by myhost.test.ex with local-esmtp (Exim x.yz) + (envelope-from ) + id 10HmaZ-0005vi-00 + for usery@domain.com + ╰──(tainted) ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ╭considering: ${tod_full} + ├──expanding: ${tod_full} + ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmbA-0005vi-00 LOG: MAIN @@ -474,6 +1069,7 @@ 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 @@ -481,47 +1077,63 @@ LOG: MAIN Completed LOG: smtp_connection MAIN SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... +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 - |__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 + ╭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 chunking_advertise_hosts? no (end of list) in tls_advertise_hosts? yes (matched "*") - /considering: ${if eq {SERVER}{server}{queue}{cutthrough}} - /considering: SERVER}{server}{queue}{cutthrough}} - |__expanding: SERVER - \_____result: SERVER - /considering: server}{queue}{cutthrough}} - |__expanding: server - \_____result: server - |__condition: eq {SERVER}{server} - |_____result: false - / scanning: queue}{cutthrough}} - |__expanding: queue - |_____result: queue - \___skipping: result is not used - /considering: cutthrough}} - |__expanding: cutthrough - \_____result: cutthrough - |__expanding: ${if eq {SERVER}{server}{queue}{cutthrough}} - \_____result: cutthrough + ╭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}} + ╰─────result: cutthrough using ACL "cutthrough" -processing "accept" +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"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ╭considering: $local_part + ├──expanding: $local_part + ╰─────result: usery + ╰──(tainted) domain.com in "*"? yes (matched "*") ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" @@ -529,14 +1141,15 @@ end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ domain.com in "test.ex : *.test.ex"? no (end of list) domain.com in "! +local_domains"? yes (end of list) - /considering: $local_part - |__expanding: $local_part - \_____result: usery + ╭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 - /considering: $primary_hostname - |__expanding: $primary_hostname - \_____result: myhost.test.ex +Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ... connected + ╭considering: $primary_hostname + ├──expanding: $primary_hostname + ╰─────result: myhost.test.ex SMTP<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000 127.0.0.1 in hosts_avoid_esmtp? no (option unset) SMTP>> EHLO myhost.test.ex @@ -547,152 +1160,428 @@ cmd buf flush ddd bytes 250-PIPELINING 250-STARTTLS 250 HELP - /considering: ${if eq {$address_data}{usery}{*}{:}} - /considering: $address_data}{usery}{*}{:}} - |__expanding: $address_data - \_____result: usery - /considering: usery}{*}{:}} - |__expanding: usery - \_____result: usery - |__condition: eq {$address_data}{usery} - |_____result: true - /considering: *}{:}} - |__expanding: * - \_____result: * - / scanning: :}} - |__expanding: : - |_____result: : - \___skipping: result is not used - |__expanding: ${if eq {$address_data}{usery}{*}{:}} - \_____result: * + ╭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_pipelining? no (option unset) using PIPELINING not using DSN 127.0.0.1 in hosts_require_auth? no (option unset) - SMTP>> MAIL FROM: SIZE=ssss + SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes +sync_responses expect mail SMTP<< 250 OK +sync_responses expect rcpt for usery@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ -processing "accept" +processing "accept" (TESTSUITE/test-config 55) accept: condition test succeeded in inline ACL end of inline ACL: ACCEPT SMTP>> DATA SMTP<< 354 Enter message, ending with "." on a line by itself - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____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}} (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_rcvhost - |_____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}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: from $sender_rcvhost - - |_____result: from - - \___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}} (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_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}} (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}} (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 - |__expanding: from ${quote_local_part:$sender_ident} - \_____result: from CALLER - |__condition: def:sender_helo_name - |_____result: true - /considering: (helo=$sender_helo_name) - }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: (helo=$sender_helo_name) - - \_____result: (helo=myhost.test.ex) - - |__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) - - |__condition: def:received_protocol - |_____result: true - /considering: with $received_protocol}} (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 - |__condition: def:tls_cipher - |_____result: false - / scanning: ($tls_cipher) - }}(Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: ($tls_cipher) - - |_____result: () - - \___skipping: result is not used - |__condition: def:sender_address - |_____result: true - /considering: (envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - |__expanding: (envelope-from <$sender_address>) - - \_____result: (envelope-from ) - - |__condition: def:received_for - |_____result: true - /considering: - for $received_for}} - |__expanding: - for $received_for - \_____result: - for usery@domain.com - |__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}} (Exim $version_number) - ${if def:sender_address {(envelope-from <$sender_address>) - }}id $message_exim_id${if def:received_for { - for $received_for}} - \_____result: Received: from CALLER (helo=myhost.test.ex) - by myhost.test.ex with local-esmtp (Exim x.yz) - (envelope-from ) - id 10HmbB-0005vi-00 - for usery@domain.com + ╭considering: ${tod_full} + ├──expanding: ${tod_full} + ╰─────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_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 { + for $received_for}} + ├──condition: def:sender_rcvhost + ├─────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_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 { + for $received_for}} + ├──expanding: from $sender_rcvhost + + ├─────result: from + + ╰───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_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_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_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_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_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 { + for $received_for}} + ├──expanding: (helo=$sender_helo_name) + + ╰─────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_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 + }}(Exim $version_number) + ${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_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}} + ╰─────result: Received: from CALLER (helo=myhost.test.ex) + by myhost.test.ex with local-esmtp (Exim x.yz) + (envelope-from ) + id 10HmbB-0005vi-00 + for usery@domain.com + ╰──(tainted) ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ - /considering: ${tod_full} - |__expanding: ${tod_full} - \_____result: Tue, 2 Mar 1999 09:44:33 +0000 + ╭considering: ${tod_full} + ├──expanding: ${tod_full} + ╰─────result: Tue, 2 Mar 1999 09:44:33 +0000 SMTP>> . SMTP<< 250 OK id=10HmbC-0005vi-00 LOG: MAIN @@ -700,6 +1589,7 @@ 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 @@ -707,6 +1597,6 @@ LOG: MAIN Completed LOG: smtp_connection MAIN SMTP connection from CALLER closed by QUIT ->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> ******** SERVER ********