Exim version x.yz .... Hints DB: environment after trimming: PATH= 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 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) 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) 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}} ╭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}} ├───────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" (TESTSUITE/test-config 22) check control = cutthrough_delivery check verify = recipient 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 unseen ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ 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 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 try option host_name_extract ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}} ╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}} ├──────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$ ╭───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}{*}{:}} ╭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}{*}{:}} ├──────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: *}{:}} ├───────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_request_ocsp? list element: * 127.0.0.1 in tls_verify_hosts? no (option unset) 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 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) try option authenticated_sender SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes sync_responses expect mail SMTP<< 250 OK sync_responses expect rcpt for userx@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ 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 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}} ├──condition: def:sender_rcvhost ├─────result: false ╭───scanning: from░$sender_rcvhost↩ ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: from░ ├───scanning: $sender_rcvhost↩ ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:sender_ident ├─────result: true ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: from░ ├considering: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ╎╭considering: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ╎␉}}(Exim░$version_number)↩ ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ╎␉}}id░$message_exim_id${if░def:received_for░{↩ ╎␉for░$received_for}} ╎├──────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}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: (helo= ├considering: $sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:received_protocol ├─────result: true ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: with░ ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ␉${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}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: ░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: ░tls░ ├───scanning: $tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: (envelope-from░< ├considering: $sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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░)↩ ␉ ├───item-res: (envelope-from░)↩ ␉ ╰──(tainted) ├considering: id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: id░ ├considering: $message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────value: 10HmaX-000000005vi-0000 ├considering: ${if░def:received_for░{↩ ␉for░$received_for}} ├──condition: def:received_for ├─────result: true ╭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░)↩ ␉id░10HmaX-000000005vi-0000↩ ␉for░userx@domain.com ╰──(tainted) ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ 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-000000005vi-0000 LOG: MAIN >> 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 D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... Hints DB: environment after trimming: PATH= 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 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) 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) 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}} ╭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}} ├───────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" (TESTSUITE/test-config 22) check control = cutthrough_delivery check verify = recipient 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 unseen ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ 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 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 try option host_name_extract ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}} ╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}} ├──────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$ ╭───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}{*}{:}} ╭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: *}{:}} ├───────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) try option authenticated_sender SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes sync_responses expect mail SMTP<< 250 OK sync_responses expect rcpt for usery@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ 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 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}} ├──condition: def:sender_rcvhost ├─────result: false ╭───scanning: from░$sender_rcvhost↩ ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: from░ ├───scanning: $sender_rcvhost↩ ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:sender_ident ├─────result: true ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: from░ ├considering: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ╎╭considering: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ╎␉}}(Exim░$version_number)↩ ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ╎␉}}id░$message_exim_id${if░def:received_for░{↩ ╎␉for░$received_for}} ╎├──────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}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: (helo= ├considering: $sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:received_protocol ├─────result: true ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: with░ ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ␉${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}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: ░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: ░tls░ ├───scanning: $tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: (envelope-from░< ├considering: $sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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░)↩ ␉ ├───item-res: (envelope-from░)↩ ␉ ╰──(tainted) ├considering: id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: id░ ├considering: $message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────value: 10HmaZ-000000005vi-0000 ├considering: ${if░def:received_for░{↩ ␉for░$received_for}} ├──condition: def:received_for ├─────result: true ╭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░)↩ ␉id░10HmaZ-000000005vi-0000↩ ␉for░usery@domain.com ╰──(tainted) ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ 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-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-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 D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... Hints DB: environment after trimming: PATH= 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 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) 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) 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}} ╭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}} ├───────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" (TESTSUITE/test-config 22) check control = cutthrough_delivery check verify = recipient 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 unseen ----------- end verify ------------ accept: condition test succeeded in ACL "cutthrough" end of ACL "cutthrough": ACCEPT ----------- start cutthrough setup ------------ 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 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 try option host_name_extract ╭considering: ${if░and░{{match{$host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}} ╭considering: $host}{.outlook.com\$}}░{match{$item}{\N^250-([\w.]+)\s\N}}}░{$1}} ├──────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$ ╭───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}{*}{:}} ╭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: *}{:}} ├───────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) try option authenticated_sender SMTP|> MAIL FROM: SMTP>> RCPT TO: cmd buf flush ddd bytes sync_responses expect mail SMTP<< 250 OK sync_responses expect rcpt for usery@domain.com SMTP<< 250 Accepted holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ 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 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}} ├──condition: def:sender_rcvhost ├─────result: false ╭───scanning: from░$sender_rcvhost↩ ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: from░ ├───scanning: $sender_rcvhost↩ ␉}{${if░def:sender_ident░{from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:sender_ident ├─────result: true ╭considering: from░${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: from░ ├considering: ${quote_local_part:$sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ╎╭considering: $sender_ident}░}}${if░def:sender_helo_name░{(helo=$sender_helo_name)↩ ╎␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ╎␉}}(Exim░$version_number)↩ ╎␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ╎␉}}id░$message_exim_id${if░def:received_for░{↩ ╎␉for░$received_for}} ╎├──────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}} ├──condition: def:sender_helo_name ├─────result: true ╭considering: (helo=$sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: (helo= ├considering: $sender_helo_name)↩ ␉}}}}by░$primary_hostname░${if░def:received_protocol░{with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:received_protocol ├─────result: true ╭considering: with░$received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: with░ ├considering: $received_protocol░}}${if░def:tls_in_ver░░░░░░░░{░($tls_in_ver)}}${if░def:tls_in_cipher_std░{░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ␉${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}} ├──condition: def:tls_in_cipher_std ├─────result: false ╭───scanning: ░tls░$tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: ░tls░ ├───scanning: $tls_in_cipher_std↩ ␉}}(Exim░$version_number)↩ ␉${if░def:sender_address░{(envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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}} ├──condition: def:sender_address ├─────result: true ╭considering: (envelope-from░<$sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: (envelope-from░< ├considering: $sender_address>)↩ ␉}}id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────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░)↩ ␉ ├───item-res: (envelope-from░)↩ ␉ ╰──(tainted) ├considering: id░$message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├───────text: id░ ├considering: $message_exim_id${if░def:received_for░{↩ ␉for░$received_for}} ├──────value: 10HmbB-000000005vi-0000 ├considering: ${if░def:received_for░{↩ ␉for░$received_for}} ├──condition: def:received_for ├─────result: true ╭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░)↩ ␉id░10HmbB-000000005vi-0000↩ ␉for░usery@domain.com ╰──(tainted) ----------- start cutthrough headers send ----------- ----------- done cutthrough headers send ------------ 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-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-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 D=qqs closed by QUIT >>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> ******** SERVER ********