>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> host in recipient_unqualified_hosts? no (option unset)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
>>> test in helo_lookup_domains?
>>>  list element: @
>>>  list element: @[]
>>> test in helo_lookup_domains? no (end of list)
>>> using ACL "check_recipient"
>>> processing ACL check_recipient "require" (TESTSUITE/test-config 21)
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing unknown@test.ex
>>> test.ex in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in domains? no (matched "! +local_domains")
>>> unknown in local_parts?
>>>  list element: defer
>>> unknown in local_parts? no (end of list)
>>> unknown in local_parts?
>>>  list element: userx
>>> unknown in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> require: condition test failed in ACL check_recipient
>>> end of ACL check_recipient: not OK
LOG: H=(test) [127.0.0.1] sender verify fail for <unknown@test.ex>: Unrouteable address
LOG: H=(test) [127.0.0.1] F=<unknown@test.ex> rejected RCPT <userx@test.ex>: Sender verify failed
>>> using ACL "check_recipient"
>>> processing ACL check_recipient "require" (TESTSUITE/test-config 21)
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@unknown.dom.ain
>>> unknown.dom.ain in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    unknown.dom.ain in "test.ex"?
>>>    ╎list element: test.ex
>>>    unknown.dom.ain in "test.ex"? no (end of list)
>>>   end sublist local_domains
>>> unknown.dom.ain in domains? yes (end of list)
>>> calling fail_remote_domains router
>>> fail_remote_domains router forced address failure
>>> ----------- end verify ------------
>>> require: condition test failed in ACL check_recipient
>>> end of ACL check_recipient: not OK
LOG: H=(test) [127.0.0.1] sender verify fail for <userx@unknown.dom.ain>: unrouteable mail domain "unknown.dom.ain"
LOG: H=(test) [127.0.0.1] F=<userx@unknown.dom.ain> rejected RCPT <userx@test.ex>: Sender verify failed
>>> host in smtp_accept_max_nonmail_hosts?
>>>  list element: *
>>>  host in smtp_accept_max_nonmail_hosts? yes (matched "*")
>>> using ACL "check_recipient"
>>> processing ACL check_recipient "require" (TESTSUITE/test-config 21)
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing "unknown with spaces"@test.ex
>>> test.ex in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in domains? no (matched "! +local_domains")
>>> unknown with spaces in local_parts?
>>>  list element: defer
>>> unknown with spaces in local_parts? no (end of list)
>>> unknown with spaces in local_parts?
>>>  list element: userx
>>> unknown with spaces in local_parts? no (end of list)
>>> no more routers
>>> ----------- end verify ------------
>>> require: condition test failed in ACL check_recipient
>>> end of ACL check_recipient: not OK
LOG: H=(test) [127.0.0.1] sender verify fail for <"unknown with spaces"@test.ex>: Unrouteable address
LOG: H=(test) [127.0.0.1] F=<"unknown with spaces"@test.ex> rejected RCPT <userx@test.ex>: Sender verify failed
>>> using ACL "check_recipient"
>>> processing ACL check_recipient "require" (TESTSUITE/test-config 21)
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@test.ex
>>> test.ex in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in domains? no (matched "! +local_domains")
>>> userx in local_parts?
>>>  list element: defer
>>> userx in local_parts? no (end of list)
>>> userx in local_parts?
>>>  list element: userx
>>>  userx in local_parts? yes (matched "userx")
>>> calling userx router
>>> routed by userx router
>>> ----------- end verify ------------
>>> require: condition test succeeded in ACL check_recipient
>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 22)
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>>  list element: +local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL check_recipient
>>> end of ACL check_recipient: ACCEPT
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_message"
>>> processing ACL check_message "require" (TESTSUITE/test-config 27)
>>> check verify = header_sender
>>> verifying From: header address unknown@test.ex
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing unknown@test.ex
>>> test.ex in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in domains? no (matched "! +local_domains")
>>> unknown in local_parts?
>>>  list element: defer
>>> unknown in local_parts? no (end of list)
>>> unknown in local_parts?
>>>  list element: userx
>>> unknown in local_parts? no (end of list)
>>> no more routers
>>> require: condition test failed in ACL check_message
>>> end of ACL check_message: not OK
LOG: 10HmaX-000000005vi-0000 H=(test) [127.0.0.1] F=<userx@test.ex> rejected after DATA: there is no valid sender in any header line
>>> using ACL "check_recipient"
>>> processing ACL check_recipient "require" (TESTSUITE/test-config 21)
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@test.ex
>>> test.ex in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in domains? no (matched "! +local_domains")
>>> userx in local_parts?
>>>  list element: defer
>>> userx in local_parts? no (end of list)
>>> userx in local_parts?
>>>  list element: userx
>>>  userx in local_parts? yes (matched "userx")
>>> calling userx router
>>> routed by userx router
>>> ----------- end verify ------------
>>> require: condition test succeeded in ACL check_recipient
>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 22)
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>>  list element: +local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL check_recipient
>>> end of ACL check_recipient: ACCEPT
>>> host in ignore_fromline_hosts? no (option unset)
LOG: 10HmaY-000000005vi-0000 qualify/rewrite: missing or malformed local part
>>> using ACL "check_message"
>>> processing ACL check_message "require" (TESTSUITE/test-config 27)
>>> check verify = header_sender
>>> verifying From: header address <>
>>> require: condition test failed in ACL check_message
>>> end of ACL check_message: not OK
LOG: 10HmaY-000000005vi-0000 H=(test) [127.0.0.1] F=<userx@test.ex> rejected after DATA: syntax error in 'From:' header when scanning for sender: missing or malformed local part in "<>"
>>> using ACL "check_recipient"
>>> processing ACL check_recipient "require" (TESTSUITE/test-config 21)
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing defer@test.ex
>>> test.ex in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in domains? no (matched "! +local_domains")
>>> defer in local_parts?
>>>  list element: defer
>>>  defer in local_parts? yes (matched "defer")
>>> calling defer router
>>> defer router: defer for defer@test.ex
>>>   message: forced defer
>>> ----------- end verify ------------
>>> require: condition test deferred in ACL check_recipient
LOG: H=(test) [127.0.0.1] sender verify defer for <defer@test.ex>: forced defer
LOG: H=(test) [127.0.0.1] F=<defer@test.ex> temporarily rejected RCPT <userx@test.ex>: Could not complete sender verify
>>> using ACL "check_recipient"
>>> processing ACL check_recipient "require" (TESTSUITE/test-config 21)
>>> check verify = sender
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing userx@test.ex
>>> test.ex in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in domains? no (matched "! +local_domains")
>>> userx in local_parts?
>>>  list element: defer
>>> userx in local_parts? no (end of list)
>>> userx in local_parts?
>>>  list element: userx
>>>  userx in local_parts? yes (matched "userx")
>>> calling userx router
>>> routed by userx router
>>> ----------- end verify ------------
>>> require: condition test succeeded in ACL check_recipient
>>> processing ACL check_recipient "accept" (TESTSUITE/test-config 22)
>>> check domains = +local_domains
>>> test.ex in "+local_domains"?
>>>  list element: +local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in "+local_domains"? yes (matched "+local_domains")
>>> accept: condition test succeeded in ACL check_recipient
>>> end of ACL check_recipient: ACCEPT
>>> host in ignore_fromline_hosts? no (option unset)
>>> using ACL "check_message"
>>> processing ACL check_message "require" (TESTSUITE/test-config 27)
>>> check verify = header_sender
>>> verifying from: header address <defer@test.ex>
>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>> routing defer@test.ex
>>> test.ex in domains?
>>>  list element: !░+local_domains
>>>   start sublist local_domains
>>>    test.ex in "test.ex"?
>>>    ╎list element: test.ex
>>>    ╎test.ex in "test.ex"? yes (matched "test.ex")
>>>   end sublist local_domains
>>>  data from lookup saved for cache for +local_domains: key 'test.ex' value 'test.ex'
>>>  test.ex in domains? no (matched "! +local_domains")
>>> defer in local_parts?
>>>  list element: defer
>>>  defer in local_parts? yes (matched "defer")
>>> calling defer router
>>> defer router: defer for defer@test.ex
>>>   message: forced defer
>>> require: condition test deferred in ACL check_message
LOG: 10HmaZ-000000005vi-0000 H=(test) [127.0.0.1] F=<userx@test.ex> temporarily rejected after DATA: all attempts to verify a sender in a header line deferred
>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> host in recipient_unqualified_hosts? no (option unset)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
>>> foo.bar in helo_lookup_domains?
>>>  list element: @
>>>  list element: @[]
>>> foo.bar in helo_lookup_domains? no (end of list)
>>>  list element: *
>>>  host in limits_advertise_hosts? yes (matched "*")
>>> host in dsn_advertise_hosts? no (option unset)
>>> host in pipelining_advertise_hosts?
>>>  list element: *
>>>  host in pipelining_advertise_hosts? yes (matched "*")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)
>>> host in smtp_accept_max_nonmail_hosts?
>>>  list element: *
>>>  host in smtp_accept_max_nonmail_hosts? yes (matched "*")
>>> foo.bar in helo_lookup_domains?
>>>  list element: @
>>>  list element: @[]
>>> foo.bar in helo_lookup_domains? no (end of list)
>>>  list element: *
>>>  host in limits_advertise_hosts? yes (matched "*")
>>> host in dsn_advertise_hosts? no (option unset)
>>> host in pipelining_advertise_hosts?
>>>  list element: *
>>>  host in pipelining_advertise_hosts? yes (matched "*")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)
>>> foo.bar in helo_lookup_domains?
>>>  list element: @
>>>  list element: @[]
>>> foo.bar in helo_lookup_domains? no (end of list)
>>>  list element: *
>>>  host in limits_advertise_hosts? yes (matched "*")
>>> host in dsn_advertise_hosts? no (option unset)
>>> host in pipelining_advertise_hosts?
>>>  list element: *
>>>  host in pipelining_advertise_hosts? yes (matched "*")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)
>>> foo.bar in helo_lookup_domains?
>>>  list element: @
>>>  list element: @[]
>>> foo.bar in helo_lookup_domains? no (end of list)
>>>  list element: *
>>>  host in limits_advertise_hosts? yes (matched "*")
>>> host in dsn_advertise_hosts? no (option unset)
>>> host in pipelining_advertise_hosts?
>>>  list element: *
>>>  host in pipelining_advertise_hosts? yes (matched "*")
>>> host in chunking_advertise_hosts?
>>> host in chunking_advertise_hosts? no (end of list)
