Exim version x.yz ....
+Hints DB:
+environment after trimming:
+ PATH=<munged>
+adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
configuration file is TESTSUITE/test-config
admin user
+try option gecos_pattern
+try option gecos_name
+try option unknown_login
+try option smtp_active_hostname
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
+try option message_size_limit
+try option acl_smtp_connect
+try option smtp_banner
+ ╭considering: $smtp_active_hostname░ESMTP░Exim░$version_number░$tod_full
+ ├──────value: myhost.test.ex
+ ├considering: ░ESMTP░Exim░$version_number░$tod_full
+ ├───────text: ░ESMTP░Exim░
+ ├considering: $version_number░$tod_full
+ ├──────value: x.yz
+ ├considering: ░$tod_full
+ ├───────text: ░
+ ├considering: $tod_full
+ ├──────value: Tue,░2░Mar░1999░09:44:33░+0000
+ ├───expanded: $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
+try option acl_smtp_helo
+ list element: *
+ in limits_advertise_hosts? yes (matched "*")
in dsn_advertise_hosts? no (option unset)
- in pipelining_advertise_hosts? yes (matched "*")
+try option acl_smtp_etrn
+try option acl_smtp_vrfy
+try option acl_smtp_expn
+ 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 "*")
- ┌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}
+ list element: *
+ in tls_advertise_hosts? yes (matched "*")
+try option acl_smtp_mail
+try option acl_smtp_rcpt
+ ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
+ cond: eq
+ ╭considering: SERVER}{server}{queue}{cutthrough}}
+ ├───────text: SERVER
+ ├considering: }{server}{queue}{cutthrough}}
+ ├───expanded: SERVER
+ ╰─────result: SERVER
+ ╭considering: server}{queue}{cutthrough}}
+ ├───────text: server
+ ├considering: }{queue}{cutthrough}}
+ ├───expanded: 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
+ ╭───scanning: queue}{cutthrough}}
+ ├───────text: queue
+ ├───scanning: }{cutthrough}}
+ ├───expanded: queue
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ╭considering: cutthrough}}
+ ├───────text: cutthrough
+ ├considering: }}
+ ├───expanded: cutthrough
+ ╰─────result: cutthrough
+ ├───expanded: ${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
-domain.com in "*"? yes (matched "*")
+domain.com in 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 domains? yes (end of list)
+try option router_home_directory
+try option set
+processing address_data
+ ╭considering: $local_part
+ ├──────value: userx
+ ╰──(tainted)
+ ├───expanded: $local_part
+ ╰─────result: userx
+ ╰──(tainted)
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+try option transport
+try option unseen
----------- 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"? yes (end of list)
- ┌considering: $local_part
- ├──expanding: $local_part
- └─────result: userx
-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
+domain.com in 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 domains? yes (end of list)
+try option router_home_directory
+try option set
+processing address_data
+ ╭considering: $local_part
+ ├──────value: userx
+ ╰──(tainted)
+ ├───expanded: $local_part
+ ╰─────result: userx
+ ╰──(tainted)
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+try option transport
+try option unseen
+try option interface
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
+try option dscp
+ 127.0.0.1 in hosts_try_fastopen?
+ list element:
+connected
+try option helo_data
+ ╭considering: $primary_hostname
+ ├──────value: myhost.test.ex
+ ├───expanded: $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
cmd buf flush ddd bytes
SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
250-SIZE 52428800
+ 250-LIMITS MAILMAX=1000 RCPTMAX=50000
250-8BITMIME
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}
+try option host_name_extract
+ ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ cond: and
+ cond: match
+ ╎╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──────value: 127.0.0.1
+ ╎├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├───expanded: $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}}
+ ╎├───expanded: .outlook.com\$
+ ╎╰─────result: .outlook.com$
+ cond: match
+ ╎╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──────value:
+ ╎├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├───expanded: $item
+ ╎├─────result: ◀skipped▶
+ ╎╰───skipping: result is not used
+ ╎╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──protected: ^250-([\w.]+)\s
+ ╎├───scanning: }}}░{$1}}
+ ╎├───expanded: \N^250-([\w.]+)\s\N
+ ╎├─────result: ◀skipped▶
+ ╎╰───skipping: result is not used
+ ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
├─────result: false
- ┌───scanning: *}{:}}
- ├──expanding: *
- ├─────result: *
- └───skipping: result is not used
- ┌considering: :}}
- ├──expanding: :
- └─────result: :
- ├──expanding: ${if eq {$address_data}{usery}{*}{:}}
- └─────result: :
+ ╭───scanning: $1}}
+ ├───scanning: }}
+ ├───expanded: $1
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╰─────result:
+ ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
+ cond: eq
+ ╭considering: $address_data}{usery}{*}{:}}
+ ├──────value: userx
+ ╰──(tainted)
+ ├considering: }{usery}{*}{:}}
+ ├───expanded: $address_data
+ ╰─────result: userx
+ ╰──(tainted)
+ ╭considering: usery}{*}{:}}
+ ├───────text: usery
+ ├considering: }{*}{:}}
+ ├───expanded: usery
+ ╰─────result: usery
+ ├──condition: eq░{$address_data}{usery}
+ ├─────result: false
+ ╭───scanning: *}{:}}
+ ├───────text: *
+ ├───scanning: }{:}}
+ ├───expanded: *
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ╭considering: :}}
+ ├───────text: :
+ ├considering: }}
+ ├───expanded: :
+ ╰─────result: :
+ ├───expanded: ${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}{*}{:}}
- ├──expanding: $address_data
- └─────result: userx
- ┌considering: userz}{*}{:}}
- ├──expanding: userz
- └─────result: userz
- ├──condition: eq {$address_data}{userz}
+ ╭considering: ${if░eq░{$address_data}{userz}{*}{:}}
+ cond: eq
+ ╭considering: $address_data}{userz}{*}{:}}
+ ├──────value: userx
+ ╰──(tainted)
+ ├considering: }{userz}{*}{:}}
+ ├───expanded: $address_data
+ ╰─────result: userx
+ ╰──(tainted)
+ ╭considering: userz}{*}{:}}
+ ├───────text: userz
+ ├considering: }{*}{:}}
+ ├───expanded: 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: :
+ ╭───scanning: *}{:}}
+ ├───────text: *
+ ├───scanning: }{:}}
+ ├───expanded: *
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ╭considering: :}}
+ ├───────text: :
+ ├considering: }}
+ ├───expanded: :
+ ╰─────result: :
+ ├───expanded: ${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
-127.0.0.1 in hosts_require_ocsp? no (option unset)
-127.0.0.1 in hosts_request_ocsp? yes (matched "*")
+127.0.0.1 in hosts_request_ocsp?
+ list element: *
127.0.0.1 in tls_verify_hosts? no (option unset)
-127.0.0.1 in tls_try_verify_hosts? no (end of list)
+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:
SMTP>> EHLO myhost.test.ex
cmd buf flush ddd bytes
SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
250-SIZE 52428800
+ 250-LIMITS MAILMAX=1000 RCPTMAX=50000
250-8BITMIME
250-PIPELINING
250 HELP
using PIPELINING
not using DSN
127.0.0.1 in hosts_require_auth? no (option unset)
- SMTP>> MAIL FROM:<CALLER@myhost.test.ex> SIZE=ssss
+try option authenticated_sender
+ SMTP|> MAIL FROM:<CALLER@myhost.test.ex>
SMTP>> RCPT TO:<userx@domain.com>
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"
+try option acl_smtp_predata
+processing "accept" (TESTSUITE/test-config 57)
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}}
+try option message_id_header_domain
+try option message_id_header_text
+ ╭considering: ${tod_full}
+ ├───expanded: ${tod_full}
+ ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000
+try option received_header_text
+ ╭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}}
+ cond: def
├──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}}
+ ╭───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}}
+ ├──────value:
+ ├───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}}
+ ├───expanded: from░$sender_rcvhost↩
+ ␉
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ cond: def
├──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
+ ╭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}}
+ ╎├──────value: 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}}
+ ╎├───expanded: $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}}
+ ├───expanded: 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}}
+ cond: def
├──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)
-
+ ╭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}}
+ ├──────value: 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: )↩
+ ␉
+ ├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}}
+ ├───expanded: (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}}
+ ├───expanded: ${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}}
+ ├──────value: myhost.test.ex
+ ├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}}
+ cond: def
├──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
+ ╭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}}
+ ├──────value: local-esmtp
+ ├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}}
+ ├───expanded: 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}}
+ cond: def
+ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
+ ␉}}id░$message_exim_id${if░def:received_for░{↩
+ ␉for░$received_for}}
+ ├───expanded: ░($tls_in_ver)
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ cond: def
+ ├──condition: def:tls_in_cipher_std
├─────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
+ ╭───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}}
+ ├──────value:
+ ├───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}}
+ ├───expanded: ░tls░$tls_in_cipher_std↩
+ ␉
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ ├──────value: x.yz
+ ├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}}
+ cond: def
├──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 <CALLER@myhost.test.ex>)
-
+ ╭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}}
+ ├──────value: CALLER@myhost.test.ex
+ ├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}}
+ ├───expanded: (envelope-from░<$sender_address>)↩
+ ␉
+ ╰─────result: (envelope-from░<CALLER@myhost.test.ex>)↩
+ ␉
+ ├───item-res: (envelope-from░<CALLER@myhost.test.ex>)↩
+ ␉
+ ╰──(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}}
+ ├──────value: 10HmaX-000000005vi-0000
+ ├considering: ${if░def:received_for░{↩
+ ␉for░$received_for}}
+ cond: def
├──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 <CALLER@myhost.test.ex>)
- id 10HmaX-0005vi-00
- for userx@domain.com
+ ╭considering: ↩
+ ␉for░$received_for}}
+ ├───────text: ↩
+ ␉for░
+ ├considering: $received_for}}
+ ├──────value: userx@domain.com
+ ╰──(tainted)
+ ├considering: }}
+ ├───expanded: ↩
+ ␉for░$received_for
+ ╰─────result: ↩
+ ␉for░userx@domain.com
+ ╰──(tainted)
+ ├───item-res: ↩
+ ␉for░userx@domain.com
+ ╰──(tainted)
+ ├───expanded: 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░<CALLER@myhost.test.ex>)↩
+ ␉id░10HmaX-000000005vi-0000↩
+ ␉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
+try option acl_smtp_data
+ ╭considering: ${tod_full}
+ ├───expanded: ${tod_full}
+ ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000
SMTP>> .
- SMTP<< 250 OK id=10HmaY-0005vi-00
+ SMTP<< 250 OK id=10HmaY-000000005vi-0000
LOG: MAIN
- >> userx@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] X=TLSv1:AES256-SHA: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-000000005vi-0000"
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
+try option acl_smtp_quit
LOG: smtp_connection MAIN
- SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp 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 ....
+Hints DB:
+environment after trimming:
+ PATH=<munged>
+adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
configuration file is TESTSUITE/test-config
admin user
+try option gecos_pattern
+try option gecos_name
+try option unknown_login
+try option smtp_active_hostname
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
+try option message_size_limit
+try option acl_smtp_connect
+try option smtp_banner
+ ╭considering: $smtp_active_hostname░ESMTP░Exim░$version_number░$tod_full
+ ├──────value: myhost.test.ex
+ ├considering: ░ESMTP░Exim░$version_number░$tod_full
+ ├───────text: ░ESMTP░Exim░
+ ├considering: $version_number░$tod_full
+ ├──────value: x.yz
+ ├considering: ░$tod_full
+ ├───────text: ░
+ ├considering: $tod_full
+ ├──────value: Tue,░2░Mar░1999░09:44:33░+0000
+ ├───expanded: $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
+try option acl_smtp_helo
+ list element: *
+ in limits_advertise_hosts? yes (matched "*")
in dsn_advertise_hosts? no (option unset)
- in pipelining_advertise_hosts? yes (matched "*")
+try option acl_smtp_etrn
+try option acl_smtp_vrfy
+try option acl_smtp_expn
+ 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 "*")
- ┌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}
+ list element: *
+ in tls_advertise_hosts? yes (matched "*")
+try option acl_smtp_mail
+try option acl_smtp_rcpt
+ ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
+ cond: eq
+ ╭considering: SERVER}{server}{queue}{cutthrough}}
+ ├───────text: SERVER
+ ├considering: }{server}{queue}{cutthrough}}
+ ├───expanded: SERVER
+ ╰─────result: SERVER
+ ╭considering: server}{queue}{cutthrough}}
+ ├───────text: server
+ ├considering: }{queue}{cutthrough}}
+ ├───expanded: 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
+ ╭───scanning: queue}{cutthrough}}
+ ├───────text: queue
+ ├───scanning: }{cutthrough}}
+ ├───expanded: queue
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ╭considering: cutthrough}}
+ ├───────text: cutthrough
+ ├considering: }}
+ ├───expanded: cutthrough
+ ╰─────result: cutthrough
+ ├───expanded: ${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
-domain.com in "*"? yes (matched "*")
+domain.com in 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 domains? yes (end of list)
+try option router_home_directory
+try option set
+processing address_data
+ ╭considering: $local_part
+ ├──────value: usery
+ ╰──(tainted)
+ ├───expanded: $local_part
+ ╰─────result: usery
+ ╰──(tainted)
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+try option transport
+try option unseen
----------- 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"? yes (end of list)
- ┌considering: $local_part
- ├──expanding: $local_part
- └─────result: usery
-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
+domain.com in 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 domains? yes (end of list)
+try option router_home_directory
+try option set
+processing address_data
+ ╭considering: $local_part
+ ├──────value: usery
+ ╰──(tainted)
+ ├───expanded: $local_part
+ ╰─────result: usery
+ ╰──(tainted)
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+try option transport
+try option unseen
+try option interface
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
+try option dscp
+ 127.0.0.1 in hosts_try_fastopen?
+ list element:
+connected
+try option helo_data
+ ╭considering: $primary_hostname
+ ├──────value: myhost.test.ex
+ ├───expanded: $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
cmd buf flush ddd bytes
SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
250-SIZE 52428800
+ 250-LIMITS MAILMAX=1000 RCPTMAX=50000
250-8BITMIME
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}
+try option host_name_extract
+ ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ cond: and
+ cond: match
+ ╎╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──────value: 127.0.0.1
+ ╎├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├───expanded: $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}}
+ ╎├───expanded: .outlook.com\$
+ ╎╰─────result: .outlook.com$
+ cond: match
+ ╎╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──────value:
+ ╎├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├───expanded: $item
+ ╎├─────result: ◀skipped▶
+ ╎╰───skipping: result is not used
+ ╎╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──protected: ^250-([\w.]+)\s
+ ╎├───scanning: }}}░{$1}}
+ ╎├───expanded: \N^250-([\w.]+)\s\N
+ ╎├─────result: ◀skipped▶
+ ╎╰───skipping: result is not used
+ ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
+ ├─────result: false
+ ╭───scanning: $1}}
+ ├───scanning: }}
+ ├───expanded: $1
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╰─────result:
+ ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
+ cond: eq
+ ╭considering: $address_data}{usery}{*}{:}}
+ ├──────value: usery
+ ╰──(tainted)
+ ├considering: }{usery}{*}{:}}
+ ├───expanded: $address_data
+ ╰─────result: usery
+ ╰──(tainted)
+ ╭considering: usery}{*}{:}}
+ ├───────text: usery
+ ├considering: }{*}{:}}
+ ├───expanded: 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: *
-127.0.0.1 in hosts_avoid_tls? yes (matched "*")
+ ╭considering: *}{:}}
+ ├───────text: *
+ ├considering: }{:}}
+ ├───expanded: *
+ ╰─────result: *
+ ╭───scanning: :}}
+ ├───────text: :
+ ├───scanning: }}
+ ├───expanded: :
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ├───expanded: ${if░eq░{$address_data}{usery}{*}{:}}
+ ╰─────result: *
+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:<CALLER@myhost.test.ex> SIZE=ssss
+try option authenticated_sender
+ SMTP|> MAIL FROM:<CALLER@myhost.test.ex>
SMTP>> RCPT TO:<usery@domain.com>
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"
+try option acl_smtp_predata
+processing "accept" (TESTSUITE/test-config 57)
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}}
+try option message_id_header_domain
+try option message_id_header_text
+ ╭considering: ${tod_full}
+ ├───expanded: ${tod_full}
+ ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000
+try option received_header_text
+ ╭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}}
+ cond: def
├──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}}
+ ╭───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}}
+ ├──────value:
+ ├───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}}
+ ├───expanded: from░$sender_rcvhost↩
+ ␉
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ cond: def
├──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
+ ╭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}}
+ ╎├──────value: 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}}
+ ╎├───expanded: $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}}
+ ├───expanded: 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}}
+ cond: def
├──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)
-
+ ╭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}}
+ ├──────value: 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: )↩
+ ␉
+ ├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}}
+ ├───expanded: (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}}
+ ├───expanded: ${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}}
+ ├──────value: myhost.test.ex
+ ├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}}
+ cond: def
├──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
+ ╭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}}
+ ├──────value: local-esmtp
+ ├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}}
+ ├───expanded: 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}}
+ cond: def
+ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
+ ␉}}id░$message_exim_id${if░def:received_for░{↩
+ ␉for░$received_for}}
+ ├───expanded: ░($tls_in_ver)
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ cond: def
+ ├──condition: def:tls_in_cipher_std
├─────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
+ ╭───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}}
+ ├──────value:
+ ├───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}}
+ ├───expanded: ░tls░$tls_in_cipher_std↩
+ ␉
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ ├──────value: x.yz
+ ├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}}
+ cond: def
├──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 <CALLER@myhost.test.ex>)
-
+ ╭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}}
+ ├──────value: CALLER@myhost.test.ex
+ ├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}}
+ ├───expanded: (envelope-from░<$sender_address>)↩
+ ␉
+ ╰─────result: (envelope-from░<CALLER@myhost.test.ex>)↩
+ ␉
+ ├───item-res: (envelope-from░<CALLER@myhost.test.ex>)↩
+ ␉
+ ╰──(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}}
+ ├──────value: 10HmaZ-000000005vi-0000
+ ├considering: ${if░def:received_for░{↩
+ ␉for░$received_for}}
+ cond: def
├──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 <CALLER@myhost.test.ex>)
- id 10HmaZ-0005vi-00
- for usery@domain.com
+ ╭considering: ↩
+ ␉for░$received_for}}
+ ├───────text: ↩
+ ␉for░
+ ├considering: $received_for}}
+ ├──────value: usery@domain.com
+ ╰──(tainted)
+ ├considering: }}
+ ├───expanded: ↩
+ ␉for░$received_for
+ ╰─────result: ↩
+ ␉for░usery@domain.com
+ ╰──(tainted)
+ ├───item-res: ↩
+ ␉for░usery@domain.com
+ ╰──(tainted)
+ ├───expanded: 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░<CALLER@myhost.test.ex>)↩
+ ␉id░10HmaZ-000000005vi-0000↩
+ ␉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
+try option acl_smtp_data
+ ╭considering: ${tod_full}
+ ├───expanded: ${tod_full}
+ ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000
SMTP>> .
- SMTP<< 250 OK id=10HmbA-0005vi-00
+ SMTP<< 250 OK id=10HmbA-000000005vi-0000
LOG: MAIN
- >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbA-0005vi-00"
+ >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbA-000000005vi-0000"
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
+try option acl_smtp_quit
LOG: smtp_connection MAIN
- SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp 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 ....
+Hints DB:
+environment after trimming:
+ PATH=<munged>
+adding SSLKEYLOGFILE=TESTSUITE/spool/sslkeys
configuration file is TESTSUITE/test-config
admin user
+try option gecos_pattern
+try option gecos_name
+try option unknown_login
+try option smtp_active_hostname
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
+try option message_size_limit
+try option acl_smtp_connect
+try option smtp_banner
+ ╭considering: $smtp_active_hostname░ESMTP░Exim░$version_number░$tod_full
+ ├──────value: myhost.test.ex
+ ├considering: ░ESMTP░Exim░$version_number░$tod_full
+ ├───────text: ░ESMTP░Exim░
+ ├considering: $version_number░$tod_full
+ ├──────value: x.yz
+ ├considering: ░$tod_full
+ ├───────text: ░
+ ├considering: $tod_full
+ ├──────value: Tue,░2░Mar░1999░09:44:33░+0000
+ ├───expanded: $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
+try option acl_smtp_helo
+ list element: *
+ in limits_advertise_hosts? yes (matched "*")
in dsn_advertise_hosts? no (option unset)
- in pipelining_advertise_hosts? yes (matched "*")
+try option acl_smtp_etrn
+try option acl_smtp_vrfy
+try option acl_smtp_expn
+ 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 "*")
- ┌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}
+ list element: *
+ in tls_advertise_hosts? yes (matched "*")
+try option acl_smtp_mail
+try option acl_smtp_rcpt
+ ╭considering: ${if░eq░{SERVER}{server}{queue}{cutthrough}}
+ cond: eq
+ ╭considering: SERVER}{server}{queue}{cutthrough}}
+ ├───────text: SERVER
+ ├considering: }{server}{queue}{cutthrough}}
+ ├───expanded: SERVER
+ ╰─────result: SERVER
+ ╭considering: server}{queue}{cutthrough}}
+ ├───────text: server
+ ├considering: }{queue}{cutthrough}}
+ ├───expanded: 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
+ ╭───scanning: queue}{cutthrough}}
+ ├───────text: queue
+ ├───scanning: }{cutthrough}}
+ ├───expanded: queue
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ╭considering: cutthrough}}
+ ├───────text: cutthrough
+ ├considering: }}
+ ├───expanded: cutthrough
+ ╰─────result: cutthrough
+ ├───expanded: ${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
-domain.com in "*"? yes (matched "*")
+domain.com in 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 domains? yes (end of list)
+try option router_home_directory
+try option set
+processing address_data
+ ╭considering: $local_part
+ ├──────value: usery
+ ╰──(tainted)
+ ├───expanded: $local_part
+ ╰─────result: usery
+ ╰──(tainted)
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+try option transport
+try option unseen
----------- 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"? yes (end of list)
- ┌considering: $local_part
- ├──expanding: $local_part
- └─────result: usery
-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
+domain.com in 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 domains? yes (end of list)
+try option router_home_directory
+try option set
+processing address_data
+ ╭considering: $local_part
+ ├──────value: usery
+ ╰──(tainted)
+ ├───expanded: $local_part
+ ╰─────result: usery
+ ╰──(tainted)
+domain.com in "*"?
+ list element: *
+ domain.com in "*"? yes (matched "*")
+try option transport
+try option unseen
+try option interface
+Connecting to 127.0.0.1 [127.0.0.1]:PORT_D from ip4.ip4.ip4.ip4 ...
+try option dscp
+ 127.0.0.1 in hosts_try_fastopen?
+ list element:
+connected
+try option helo_data
+ ╭considering: $primary_hostname
+ ├──────value: myhost.test.ex
+ ├───expanded: $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
cmd buf flush ddd bytes
SMTP<< 250-myhost.test.ex Hello the.local.host.name [ip4.ip4.ip4.ip4]
250-SIZE 52428800
+ 250-LIMITS MAILMAX=1000 RCPTMAX=50000
250-8BITMIME
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}
+try option host_name_extract
+ ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ cond: and
+ cond: match
+ ╎╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──────value: 127.0.0.1
+ ╎├considering: }{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├───expanded: $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}}
+ ╎├───expanded: .outlook.com\$
+ ╎╰─────result: .outlook.com$
+ cond: match
+ ╎╭───scanning: $item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──────value:
+ ╎├───scanning: }{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├───expanded: $item
+ ╎├─────result: ◀skipped▶
+ ╎╰───skipping: result is not used
+ ╎╭───scanning: \N^250-([\w.]+)\s\N}}}░{$1}}
+ ╎├──protected: ^250-([\w.]+)\s
+ ╎├───scanning: }}}░{$1}}
+ ╎├───expanded: \N^250-([\w.]+)\s\N
+ ╎├─────result: ◀skipped▶
+ ╎╰───skipping: result is not used
+ ├──condition: and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}
+ ├─────result: false
+ ╭───scanning: $1}}
+ ├───scanning: }}
+ ├───expanded: $1
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ├───expanded: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}}
+ ╰─────result:
+ ╭considering: ${if░eq░{$address_data}{usery}{*}{:}}
+ cond: eq
+ ╭considering: $address_data}{usery}{*}{:}}
+ ├──────value: usery
+ ╰──(tainted)
+ ├considering: }{usery}{*}{:}}
+ ├───expanded: $address_data
+ ╰─────result: usery
+ ╰──(tainted)
+ ╭considering: usery}{*}{:}}
+ ├───────text: usery
+ ├considering: }{*}{:}}
+ ├───expanded: 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: *
-127.0.0.1 in hosts_avoid_tls? yes (matched "*")
+ ╭considering: *}{:}}
+ ├───────text: *
+ ├considering: }{:}}
+ ├───expanded: *
+ ╰─────result: *
+ ╭───scanning: :}}
+ ├───────text: :
+ ├───scanning: }}
+ ├───expanded: :
+ ├─────result: ◀skipped▶
+ ╰───skipping: result is not used
+ ├───expanded: ${if░eq░{$address_data}{usery}{*}{:}}
+ ╰─────result: *
+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:<CALLER@myhost.test.ex> SIZE=ssss
+try option authenticated_sender
+ SMTP|> MAIL FROM:<CALLER@myhost.test.ex>
SMTP>> RCPT TO:<usery@domain.com>
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"
+try option acl_smtp_predata
+processing "accept" (TESTSUITE/test-config 57)
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}}
+try option message_id_header_domain
+try option message_id_header_text
+ ╭considering: ${tod_full}
+ ├───expanded: ${tod_full}
+ ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000
+try option received_header_text
+ ╭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}}
+ cond: def
├──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}}
+ ╭───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}}
+ ├──────value:
+ ├───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}}
+ ├───expanded: from░$sender_rcvhost↩
+ ␉
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ cond: def
├──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
+ ╭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}}
+ ╎├──────value: 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}}
+ ╎├───expanded: $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}}
+ ├───expanded: 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}}
+ cond: def
├──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)
-
+ ╭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}}
+ ├──────value: 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: )↩
+ ␉
+ ├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}}
+ ├───expanded: (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}}
+ ├───expanded: ${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}}
+ ├──────value: myhost.test.ex
+ ├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}}
+ cond: def
├──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
+ ╭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}}
+ ├──────value: local-esmtp
+ ├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}}
+ ├───expanded: 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}}
+ cond: def
+ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩
+ ␉}}id░$message_exim_id${if░def:received_for░{↩
+ ␉for░$received_for}}
+ ├───expanded: ░($tls_in_ver)
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ cond: def
+ ├──condition: def:tls_in_cipher_std
├─────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
+ ╭───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}}
+ ├──────value:
+ ├───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}}
+ ├───expanded: ░tls░$tls_in_cipher_std↩
+ ␉
+ ├─────result: ◀skipped▶
+ ╰───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}}
+ ├──────value: x.yz
+ ├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}}
+ cond: def
├──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 <CALLER@myhost.test.ex>)
-
+ ╭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}}
+ ├──────value: CALLER@myhost.test.ex
+ ├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}}
+ ├───expanded: (envelope-from░<$sender_address>)↩
+ ␉
+ ╰─────result: (envelope-from░<CALLER@myhost.test.ex>)↩
+ ␉
+ ├───item-res: (envelope-from░<CALLER@myhost.test.ex>)↩
+ ␉
+ ╰──(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}}
+ ├──────value: 10HmbB-000000005vi-0000
+ ├considering: ${if░def:received_for░{↩
+ ␉for░$received_for}}
+ cond: def
├──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 <CALLER@myhost.test.ex>)
- id 10HmbB-0005vi-00
- for usery@domain.com
+ ╭considering: ↩
+ ␉for░$received_for}}
+ ├───────text: ↩
+ ␉for░
+ ├considering: $received_for}}
+ ├──────value: usery@domain.com
+ ╰──(tainted)
+ ├considering: }}
+ ├───expanded: ↩
+ ␉for░$received_for
+ ╰─────result: ↩
+ ␉for░usery@domain.com
+ ╰──(tainted)
+ ├───item-res: ↩
+ ␉for░usery@domain.com
+ ╰──(tainted)
+ ├───expanded: 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░<CALLER@myhost.test.ex>)↩
+ ␉id░10HmbB-000000005vi-0000↩
+ ␉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
+try option acl_smtp_data
+ ╭considering: ${tod_full}
+ ├───expanded: ${tod_full}
+ ╰─────result: Tue,░2░Mar░1999░09:44:33░+0000
SMTP>> .
- SMTP<< 250 OK id=10HmbC-0005vi-00
+ SMTP<< 250 OK id=10HmbC-000000005vi-0000
LOG: MAIN
- >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbC-0005vi-00"
+ >> usery@domain.com R=all T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbC-000000005vi-0000"
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
+try option acl_smtp_quit
LOG: smtp_connection MAIN
- SMTP connection from CALLER closed by QUIT
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+ SMTP connection from CALLER D=qqs closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
******** SERVER ********