Testcases for pipelined callout
authorJeremy Harris <jgh146exb@wizmail.org>
Sat, 14 Jan 2017 17:34:57 +0000 (17:34 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sat, 21 Jan 2017 21:51:01 +0000 (21:51 +0000)
doc/doc-txt/ChangeLog
src/src/verify.c
test/confs/0578 [new symlink]
test/log/0578 [new file with mode: 0644]
test/rejectlog/0578 [new file with mode: 0644]
test/scripts/0000-Basic/0578 [new file with mode: 0644]
test/stderr/0578 [new file with mode: 0644]
test/stdout/0578 [new file with mode: 0644]

index f501eb433cf6e749039c947d15e4498cca87b3ac..50309b1f1778aa5f5ff42522ef579c4b803f528a 100644 (file)
@@ -32,6 +32,10 @@ JH/05 Bug 2017: Fix DKIM verification in -bh test mode.  The data feed into
       the dkim code may be unix-mode line endings rather than smtp wire-format
       CRLF, so prepend a CR to any bare LF.
 
       the dkim code may be unix-mode line endings rather than smtp wire-format
       CRLF, so prepend a CR to any bare LF.
 
+JH/06 Rationalise the coding for callout smtp conversations and transport ones.
+      As a side-benfit, callouts can now use PIPELINING hence fewer round-trips.
+
+
 Exim version 4.88
 -----------------
 
 Exim version 4.88
 -----------------
 
index f263060bef84445a403893206d82a49dd4306fd4..6fef314fc848ac20632c847b8d8d56ce1becfc55 100644 (file)
@@ -761,6 +761,23 @@ tls_retry_connection:
       addr->address = string_sprintf("%s@%.1000s",
                                    random_local_part, rcpt_domain);
       done = FALSE;
       addr->address = string_sprintf("%s@%.1000s",
                                    random_local_part, rcpt_domain);
       done = FALSE;
+
+      /* If accepted, we aren't going to do any further tests below.
+      Otherwise, cache a real negative response, and get back to the right
+      state to send RCPT. Unless there's some problem such as a dropped
+      connection, we expect to succeed, because the commands succeeded above.
+      However, some servers drop the connection after responding to an
+      invalid recipient, so on (any) error we drop and remake the connection.
+      XXX We don't care about that for postmaster_full.  Should we?
+
+      XXX could we add another flag to the context, and have the common
+      code emit the RSET too?  Even pipelined after the RCPT...
+      Then the main-verify call could use it if there's to be a subsequent
+      postmaster-verify.
+      The sync_responses() would need to be taught about it and we'd
+      need another return code filtering out to here.
+      */
+
       if (smtp_write_mail_and_rcpt_cmds(&sx, &yield) == 0)
        switch(addr->transport_return)
          {
       if (smtp_write_mail_and_rcpt_cmds(&sx, &yield) == 0)
        switch(addr->transport_return)
          {
@@ -771,7 +788,8 @@ tls_retry_connection:
            new_domain_record.random_result = ccache_reject;
 
            /* Between each check, issue RSET, because some servers accept only
            new_domain_record.random_result = ccache_reject;
 
            /* Between each check, issue RSET, because some servers accept only
-           one recipient after MAIL FROM:<>. */
+           one recipient after MAIL FROM:<>.
+           XXX We don't care about that for postmaster_full.  Should we? */
 
            if ((done =
              smtp_write_command(&sx.outblock, FALSE, "RSET\r\n") >= 0 &&
 
            if ((done =
              smtp_write_command(&sx.outblock, FALSE, "RSET\r\n") >= 0 &&
@@ -795,22 +813,7 @@ tls_retry_connection:
            goto tls_retry_connection;
          }
 
            goto tls_retry_connection;
          }
 
-      /* If accepted, we aren't going to do any further tests below.
-      Otherwise, cache a real negative response, and get back to the right
-      state to send RCPT. Unless there's some problem such as a dropped
-      connection, we expect to succeed, because the commands succeeded above.
-      However, some servers drop the connection after responding to  an
-      invalid recipient, so on (any) error we drop and remake the connection.
-
-      XXX could we add another flag to the context, and have the common
-      code emit the RSET too?  Even pipelined after the RCPT...
-      Then the main-verify call could use it if there's to be a subsequent
-      postmaster-verify.
-      The sync_responses() would need to be taught about it and we'd
-      need another return code filtering out to here.
-
-      Remember when we last did a random test
-      */
+      /* Remember when we last did a random test */
 
       new_domain_record.random_stamp = time(NULL);
 
 
       new_domain_record.random_stamp = time(NULL);
 
diff --git a/test/confs/0578 b/test/confs/0578
new file mode 120000 (symlink)
index 0000000..84e7471
--- /dev/null
@@ -0,0 +1 @@
+0376
\ No newline at end of file
diff --git a/test/log/0578 b/test/log/0578
new file mode 100644 (file)
index 0000000..7c38e63
--- /dev/null
@@ -0,0 +1,22 @@
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : could not connect: Connection refused
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<ok@localhost> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<bad@localhost>: 550 REJECTED rcpt
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <ok@localhost>: 127.0.0.1 [127.0.0.1] : response to "MAIL FROM:<>" was: 550 REJECT mail from
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <ok@localhost>
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.2] U=root sender verify fail for <ok@otherhost>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<postmaster@otherhost>: 550 NOT OK rcpt postmaster
+1999-03-02 09:44:33 H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.2] U=root sender verify fail for <ok@otherhost>
+1999-03-02 09:44:33 H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root sender verify defer for <ok@otherhost3>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : response to "RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost3>" was: 250 OK accepting that random recipient
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<ok@otherhost3> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+1999-03-02 09:44:33 H=[V4NET.0.0.4] U=root sender verify defer for <ok@otherhost4>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : response to "RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost4>" was: 250 OK
+1999-03-02 09:44:33 H=[V4NET.0.0.4] U=root F=<ok@otherhost4> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root sender verify defer for <okok@otherhost51>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : SMTP timeout after RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost51>
+1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<okok@otherhost51> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= ok7@otherhost53 H=[V4NET.0.0.7] U=root P=smtp S=sss
+1999-03-02 09:44:33 10HmaY-0005vi-00 <= ok7@otherhost53 H=[V4NET.0.0.8] U=root P=smtp S=sss
diff --git a/test/rejectlog/0578 b/test/rejectlog/0578
new file mode 100644 (file)
index 0000000..db94a4d
--- /dev/null
@@ -0,0 +1,20 @@
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : could not connect: Connection refused
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<ok@localhost> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<bad@localhost>: 550 REJECTED rcpt
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <ok@localhost>: 127.0.0.1 [127.0.0.1] : response to "MAIL FROM:<>" was: 550 REJECT mail from
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root sender verify fail for <ok@localhost>
+1999-03-02 09:44:33 H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.2] U=root sender verify fail for <ok@otherhost>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<postmaster@otherhost>: 550 NOT OK rcpt postmaster
+1999-03-02 09:44:33 H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.2] U=root sender verify fail for <ok@otherhost>
+1999-03-02 09:44:33 H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root sender verify defer for <ok@otherhost3>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : response to "RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost3>" was: 250 OK accepting that random recipient
+1999-03-02 09:44:33 H=[V4NET.0.0.3] U=root F=<ok@otherhost3> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+1999-03-02 09:44:33 H=[V4NET.0.0.4] U=root sender verify defer for <ok@otherhost4>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : response to "RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost4>" was: 250 OK
+1999-03-02 09:44:33 H=[V4NET.0.0.4] U=root F=<ok@otherhost4> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root sender verify defer for <okok@otherhost51>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : SMTP timeout after RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost51>
+1999-03-02 09:44:33 H=[V4NET.0.0.5] U=root F=<okok@otherhost51> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
diff --git a/test/scripts/0000-Basic/0578 b/test/scripts/0000-Basic/0578
new file mode 100644 (file)
index 0000000..4267b0c
--- /dev/null
@@ -0,0 +1,483 @@
+# callout verification pipelining
+need_ipv4
+#
+# basic sender verify
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO
+250 OK mail sender
+250 OK recipient
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1
+MAIL FROM:<ok@localhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1
+MAIL FROM:<ok@localhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Wait for the record to time out and try again
+sleep 2
+# Should want to connect, but fail
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1
+MAIL FROM:<ok@localhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test unsuccessful caching
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK sender
+550 REJECTED rcpt
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1
+MAIL FROM:<bad@localhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1
+MAIL FROM:<bad@localhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test caching of rejection of MAIL FROM:<>
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+550 REJECT mail from
+530 BAD SEQUENCE no sender accepted for rcpt
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1
+MAIL FROM:<ok@localhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.1
+MAIL FROM:<ok@localhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test caching of rejection of postmaster
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO
+250 OK sender
+250 OK rcpt
+RSET
+250 OK reset
+MAIL FROM:<>
+RCPT TO:<postmaster@otherhost>
+250 OK sender
+550 NOT OK rcpt postmaster
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2
+MAIL FROM:<ok@otherhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2
+MAIL FROM:<ok@otherhost>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test caching of accepting of postmaster
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM
+RCPT TO:<postmaster@otherhost2>
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2
+MAIL FROM:<ok@otherhost2>
+RCPT TO:<z@test.ex>
+QUIT
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2
+MAIL FROM:<ok@otherhost2>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test caching of accepting a random address
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO:<myhost.test.ex-
+250 OK
+250 OK accepting that random recipient
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.3
+MAIL FROM:<ok@otherhost3>
+RCPT TO:<z@test.ex>
+QUIT
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.3
+MAIL FROM:<otherok@otherhost3>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test caching of accepting a random address and postmaster
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO:<myhost.test.ex-
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.4
+MAIL FROM:<ok@otherhost4>
+RCPT TO:<z@test.ex>
+QUIT
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.4
+MAIL FROM:<ok@otherhost4>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test caching of rejecting a random address and postmaster
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<myhost.test.ex-
+250 OK
+550 NOT OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@otherhost41>
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<postmaster@otherhost41>
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.4
+MAIL FROM:<ok@otherhost41>
+RCPT TO:<z@test.ex>
+QUIT
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.4
+MAIL FROM:<ok@otherhost41>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test caching of accepting of postmaster when another
+# address has to be tested
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2
+MAIL FROM:<ok@otherhost21>
+RCPT TO:<z@test.ex>
+QUIT
+****
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.2
+MAIL FROM:<ok2@otherhost21>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test caching of rejecting a random address
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+550 NOT OK
+RSET
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.3
+MAIL FROM:<ok@otherhost31>
+RCPT TO:<z@test.ex>
+QUIT
+****
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO:<okok@otherhost31>
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.3
+MAIL FROM:<okok@otherhost31>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Wait a bit for the record to expire and then try again
+sleep 2
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<myhost.test.ex-
+250 OK
+550 NOT OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<okokok@otherhost31>
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -DPEX=1s -d-all+verify -v -bs -oMa V4NET.0.0.3
+MAIL FROM:<okokok@otherhost31>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Timeout on the RCPT for random
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+*sleep 2
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.5
+MAIL FROM:<okok@otherhost51>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Postmaster_sender set non-empty
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<pmsend@a.domain>
+RCPT TO:<postmaster@otherhost52>
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.6
+MAIL FROM:<okokok@otherhost52>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Header_sender sender set non-empty
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<somesender@a.domain>
+RCPT TO:<abcd@x.y.z>
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -odq -v -bs -oMa V4NET.0.0.7
+MAIL FROM:<ok7@otherhost53>
+RCPT TO:<z@test.ex>
+DATA
+Reply-To: abcd@x.y.z
+.
+QUIT
+****
+# Timeout on RCPT for header_sender (defer_ok test)
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+*sleep 2
+****
+sudo exim -d-all+verify -odq -v -bs -oMa V4NET.0.0.8
+MAIL FROM:<ok7@otherhost53>
+RCPT TO:<z@test.ex>
+DATA
+Reply-To: abcd@x.y.z
+.
+QUIT
+****
+# Test full postmaster check
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM
+RCPT TO:<postmaster@otherhost9>
+250 OK
+550 NOT OK
+RCPT TO:<postmaster>
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.9
+MAIL FROM:<ok@otherhost9>
+RCPT TO:<z@test.ex>
+QUIT
+****
+# Test postmaster_mailfrom with random
+server PORT_S
+220 Server ready
+EHLO
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+550 RANDOM IS BAD
+RSET
+250 OK
+MAIL FROM
+RCPT TO
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<pmsend@b.domain>
+RCPT TO:<postmaster@test.ex>
+250 OK
+250 OK
+QUIT
+250 OK
+****
+sudo exim -d-all+verify -v -bs -oMa V4NET.0.0.10
+MAIL FROM:<ok@otherhost10>
+RCPT TO:<z@test.ex>
+QUIT
+****
+no_msglog_check
diff --git a/test/stderr/0578 b/test/stderr/0578
new file mode 100644 (file)
index 0000000..74581fd
--- /dev/null
@@ -0,0 +1,896 @@
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@localhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@localhost
+Attempting full verification using callout
+callout cache: no domain record found for localhost
+callout cache: no address record found for ok@localhost
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok@localhost>
+  SMTP<< 250 OK mail sender
+  SMTP<< 250 OK recipient
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for localhost:
+  result=1 postmaster=0 random=0
+wrote positive callout cache address record for ok@localhost
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@localhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@localhost
+Attempting full verification using callout
+callout cache: found domain record for localhost
+callout cache: found address record for ok@localhost
+callout cache: address record is positive
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@localhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@localhost
+Attempting full verification using callout
+callout cache: found domain record for localhost
+callout cache: address record expired for ok@localhost
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... failed: Connection refused
+connect: Connection refused
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root sender verify defer for <ok@localhost>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : could not connect: Connection refused
+created log directory TESTSUITE/spool/log
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root F=<ok@localhost> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying bad@localhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering bad@localhost
+Attempting full verification using callout
+callout cache: found domain record for localhost
+callout cache: no address record found for bad@localhost
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<bad@localhost>
+  SMTP<< 250 OK sender
+  SMTP<< 550 REJECTED rcpt
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for localhost:
+  result=1 postmaster=0 random=0
+wrote negative callout cache address record for bad@localhost
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<bad@localhost>: 550 REJECTED rcpt
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying bad@localhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering bad@localhost
+Attempting full verification using callout
+callout cache: found domain record for localhost
+callout cache: found address record for bad@localhost
+callout cache: address record is negative
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root F=<bad@localhost> rejected RCPT <z@test.ex>: (recipient): Sender verify failed
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@localhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@localhost
+Attempting full verification using callout
+callout cache: found domain record for localhost
+callout cache: address record expired for ok@localhost
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok@localhost>
+  SMTP<< 550 REJECT mail from
+  SMTP<< 530 BAD SEQUENCE no sender accepted for rcpt
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for localhost:
+  result=3 postmaster=0 random=0
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root sender verify fail for <ok@localhost>: 127.0.0.1 [127.0.0.1] : response to "MAIL FROM:<>" was: 550 REJECT mail from
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@localhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@localhost
+Attempting full verification using callout
+callout cache: found domain record for localhost
+callout cache: domain gave initial rejection, or does not accept HELO or MAIL FROM:<>
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root sender verify fail for <ok@localhost>
+LOG: MAIN REJECT
+  H=[V4NET.0.0.1] U=root F=<ok@localhost> rejected RCPT <z@test.ex>: (mail): Sender verify failed
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost
+Attempting full verification using callout
+callout cache: no domain record found for otherhost
+callout cache: no address record found for ok@otherhost
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok@otherhost>
+  SMTP<< 250 OK sender
+  SMTP<< 250 OK rcpt
+Cutthrough cancelled by presence of postmaster verify
+  SMTP>> RSET
+  SMTP<< 250 OK reset
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<postmaster@otherhost>
+  SMTP<< 250 OK sender
+  SMTP<< 550 NOT OK rcpt postmaster
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost:
+  result=1 postmaster=2 random=0
+wrote positive callout cache address record for ok@otherhost
+LOG: MAIN REJECT
+  H=[V4NET.0.0.2] U=root sender verify fail for <ok@otherhost>: 127.0.0.1 [127.0.0.1] : SMTP error from remote mail server after RCPT TO:<postmaster@otherhost>: 550 NOT OK rcpt postmaster
+LOG: MAIN REJECT
+  H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost
+Attempting full verification using callout
+callout cache: found domain record for otherhost
+callout cache: domain does not accept RCPT TO:<postmaster@domain>
+LOG: MAIN REJECT
+  H=[V4NET.0.0.2] U=root sender verify fail for <ok@otherhost>
+LOG: MAIN REJECT
+  H=[V4NET.0.0.2] U=root F=<ok@otherhost> rejected RCPT <z@test.ex>: Sender verify failed
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost2
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost2
+Attempting full verification using callout
+callout cache: no domain record found for otherhost2
+callout cache: no address record found for ok@otherhost2
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok@otherhost2>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+Cutthrough cancelled by presence of postmaster verify
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<postmaster@otherhost2>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost2:
+  result=1 postmaster=1 random=0
+wrote positive callout cache address record for ok@otherhost2
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost2
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost2
+Attempting full verification using callout
+callout cache: found domain record for otherhost2
+callout cache: domain accepts RCPT TO:<postmaster@domain>
+callout cache: found address record for ok@otherhost2
+callout cache: address record is positive
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost3
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost3
+Attempting full verification using callout
+callout cache: no domain record found for otherhost3
+callout cache: no address record found for ok@otherhost3
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost3>
+  SMTP<< 250 OK
+  SMTP<< 250 OK accepting that random recipient
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost3:
+  result=1 postmaster=0 random=1
+LOG: MAIN REJECT
+  H=[V4NET.0.0.3] U=root sender verify defer for <ok@otherhost3>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : response to "RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost3>" was: 250 OK accepting that random recipient
+LOG: MAIN REJECT
+  H=[V4NET.0.0.3] U=root F=<ok@otherhost3> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying otherok@otherhost3
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering otherok@otherhost3
+Attempting full verification using callout
+callout cache: found domain record for otherhost3
+callout cache: domain accepts random addresses
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost4
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost4
+Attempting full verification using callout
+callout cache: no domain record found for otherhost4
+callout cache: no address record found for ok@otherhost4
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost4>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost4:
+  result=1 postmaster=0 random=1
+LOG: MAIN REJECT
+  H=[V4NET.0.0.4] U=root sender verify defer for <ok@otherhost4>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : response to "RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost4>" was: 250 OK
+LOG: MAIN REJECT
+  H=[V4NET.0.0.4] U=root F=<ok@otherhost4> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost4
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost4
+Attempting full verification using callout
+callout cache: found domain record for otherhost4
+callout cache: domain accepts random addresses
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost41
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost41
+Attempting full verification using callout
+callout cache: no domain record found for otherhost41
+callout cache: no address record found for ok@otherhost41
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost41>
+  SMTP<< 250 OK
+  SMTP<< 550 NOT OK
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok@otherhost41>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+Cutthrough cancelled by presence of postmaster verify
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<postmaster@otherhost41>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost41:
+  result=1 postmaster=1 random=2
+wrote positive callout cache address record for ok@otherhost41
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost41
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost41
+Attempting full verification using callout
+callout cache: found domain record for otherhost41
+callout cache: domain rejects random addresses
+callout cache: domain accepts RCPT TO:<postmaster@domain>
+callout cache: found address record for ok@otherhost41
+callout cache: address record is positive
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost21
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost21
+Attempting full verification using callout
+callout cache: no domain record found for otherhost21
+callout cache: no address record found for ok@otherhost21
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok@otherhost21>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+Cutthrough cancelled by presence of postmaster verify
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<postmaster@otherhost21>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost21:
+  result=1 postmaster=1 random=0
+wrote positive callout cache address record for ok@otherhost21
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok2@otherhost21
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok2@otherhost21
+Attempting full verification using callout
+callout cache: found domain record for otherhost21
+callout cache: domain accepts RCPT TO:<postmaster@domain>
+callout cache: no address record found for ok2@otherhost21
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok2@otherhost21>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost21:
+  result=1 postmaster=1 random=0
+wrote positive callout cache address record for ok2@otherhost21
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost31
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost31
+Attempting full verification using callout
+callout cache: no domain record found for otherhost31
+callout cache: no address record found for ok@otherhost31
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost31>
+  SMTP<< 250 OK
+  SMTP<< 550 NOT OK
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok@otherhost31>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost31:
+  result=1 postmaster=0 random=2
+wrote positive callout cache address record for ok@otherhost31
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying okok@otherhost31
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering okok@otherhost31
+Attempting full verification using callout
+callout cache: found domain record for otherhost31
+callout cache: domain rejects random addresses
+callout cache: no address record found for okok@otherhost31
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<okok@otherhost31>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost31:
+  result=1 postmaster=0 random=2
+wrote positive callout cache address record for okok@otherhost31
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying okokok@otherhost31
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering okokok@otherhost31
+Attempting full verification using callout
+callout cache: domain record expired for otherhost31
+callout cache: no address record found for okokok@otherhost31
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost31>
+  SMTP<< 250 OK
+  SMTP<< 550 NOT OK
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<okokok@otherhost31>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost31:
+  result=1 postmaster=0 random=2
+wrote positive callout cache address record for okokok@otherhost31
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying okok@otherhost51
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering okok@otherhost51
+Attempting full verification using callout
+callout cache: no domain record found for otherhost51
+callout cache: no address record found for okok@otherhost51
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost51>
+  SMTP<< 250 OK
+SMTP timeout
+  SMTP(close)>>
+wrote callout cache domain record for otherhost51:
+  result=1 postmaster=0 random=0
+LOG: MAIN REJECT
+  H=[V4NET.0.0.5] U=root sender verify defer for <okok@otherhost51>: Could not complete sender verify callout: 127.0.0.1 [127.0.0.1] : SMTP timeout after RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost51>
+LOG: MAIN REJECT
+  H=[V4NET.0.0.5] U=root F=<okok@otherhost51> temporarily rejected RCPT <z@test.ex>: Could not complete sender verify callout
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying okokok@otherhost52
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering okokok@otherhost52
+Attempting full verification using callout
+callout cache: no domain record found for otherhost52
+callout cache: no address record found for okokok@otherhost52
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<okokok@otherhost52>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+Cutthrough cancelled by presence of postmaster verify
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<pmsend@a.domain>
+  SMTP>> RCPT TO:<postmaster@otherhost52>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost52:
+  result=1 postmaster=1 random=0
+wrote positive callout cache address record for okokok@otherhost52
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+verifying Reply-To: header address abcd@x.y.z
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying abcd@x.y.z
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering abcd@x.y.z
+Attempting full verification using callout
+callout cache: no domain record found for x.y.z
+callout cache: no address record found for abcd@x.y.z/<somesender@a.domain>
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<somesender@a.domain>
+  SMTP>> RCPT TO:<abcd@x.y.z>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for x.y.z:
+  result=1 postmaster=0 random=0
+wrote positive callout cache address record for abcd@x.y.z/<somesender@a.domain>
+LOG: MAIN
+  <= ok7@otherhost53 H=[V4NET.0.0.7] U=root P=smtp S=sss
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+verifying Reply-To: header address abcd@x.y.z
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying abcd@x.y.z
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering abcd@x.y.z
+Attempting full verification using callout
+callout cache: found domain record for x.y.z
+callout cache: no address record found for abcd@x.y.z
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<abcd@x.y.z>
+  SMTP<< 250 OK
+SMTP timeout
+  SMTP(close)>>
+wrote callout cache domain record for x.y.z:
+  result=1 postmaster=0 random=0
+LOG: MAIN
+  <= ok7@otherhost53 H=[V4NET.0.0.8] U=root P=smtp S=sss
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying ok@otherhost9
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering ok@otherhost9
+Attempting full verification using callout
+callout cache: no domain record found for otherhost9
+callout cache: no address record found for ok@otherhost9
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<ok@otherhost9>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+Cutthrough cancelled by presence of postmaster verify
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<>
+  SMTP>> RCPT TO:<postmaster@otherhost9>
+  SMTP<< 250 OK
+  SMTP<< 550 NOT OK
+  SMTP>> RCPT TO:<postmaster>
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for otherhost9:
+  result=1 postmaster=1 random=0
+wrote positive callout cache address record for ok@otherhost9
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+LOG: smtp_connection MAIN
+  SMTP connection from root
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Verifying z@test.ex
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering z@test.ex
+Attempting full verification using callout
+callout cache: no domain record found for test.ex
+callout cache: no address record found for z@test.ex/<postmaster@myhost.test.ex>
+interface=NULL port=1224
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+  SMTP<< 220 Server ready
+  SMTP>> EHLO myhost.test.ex
+  SMTP<< 250-Yeah mate
+         250-PIPELINING
+         250 OK
+  SMTP>> MAIL FROM:<postmaster@myhost.test.ex>
+  SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@test.ex>
+  SMTP<< 250 OK
+  SMTP<< 550 RANDOM IS BAD
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<postmaster@myhost.test.ex>
+  SMTP>> RCPT TO:<z@test.ex>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+Cutthrough cancelled by presence of postmaster verify
+  SMTP>> RSET
+  SMTP<< 250 OK
+  SMTP>> MAIL FROM:<pmsend@b.domain>
+  SMTP>> RCPT TO:<postmaster@test.ex>
+  SMTP<< 250 OK
+  SMTP<< 250 OK
+  SMTP>> QUIT
+  SMTP<< 250 OK
+  SMTP(close)>>
+wrote callout cache domain record for test.ex:
+  result=1 postmaster=1 random=2
+wrote positive callout cache address record for z@test.ex/<postmaster@myhost.test.ex>
+LOG: smtp_connection MAIN
+  SMTP connection from root closed by QUIT
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stdout/0578 b/test/stdout/0578
new file mode 100644 (file)
index 0000000..40b2650
--- /dev/null
@@ -0,0 +1,482 @@
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+451 Could not complete sender verify callout\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+550-Verification failed for <bad@localhost>\r
+550-Called:   127.0.0.1\r
+550-Sent:     RCPT TO:<bad@localhost>\r
+550-Response: 550 REJECTED rcpt\r
+550 Sender verify failed\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+550-Verification failed for <bad@localhost>\r
+550-Previous (cached) callout verification failure\r
+550 Sender verify failed\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+550-Callback setup failed while verifying <ok@localhost>\r
+550-Called:   127.0.0.1\r
+550-Sent:     MAIL FROM:<>\r
+550-Response: 550 REJECT mail from\r
+550-The initial connection, or a HELO or MAIL FROM:<> command was\r
+550-rejected. Refusing MAIL FROM:<> does not help fight spam, disregards\r
+550-RFC requirements, and stops you from receiving standard bounce\r
+550-messages. This host does not accept mail from domains whose servers\r
+550-refuse bounces.\r
+550 Sender verify failed\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+550-Callback setup failed while verifying <ok@localhost>\r
+550-(result of an earlier callout reused).\r
+550-The initial connection, or a HELO or MAIL FROM:<> command was\r
+550-rejected. Refusing MAIL FROM:<> does not help fight spam, disregards\r
+550-RFC requirements, and stops you from receiving standard bounce\r
+550-messages. This host does not accept mail from domains whose servers\r
+550-refuse bounces.\r
+550 Sender verify failed\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+550-Postmaster verification failed while checking <ok@otherhost>\r
+550-Called:   127.0.0.1\r
+550-Sent:     RCPT TO:<postmaster@otherhost>\r
+550-Response: 550 NOT OK rcpt postmaster\r
+550-Several RFCs state that you are required to have a postmaster\r
+550-mailbox for each mail domain. This host does not accept mail\r
+550-from domains whose servers reject the postmaster address.\r
+550 Sender verify failed\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+550-Postmaster verification failed while checking <ok@otherhost>\r
+550-(result of earlier verification reused).\r
+550-Several RFCs state that you are required to have a postmaster\r
+550-mailbox for each mail domain. This host does not accept mail\r
+550-from domains whose servers reject the postmaster address.\r
+550 Sender verify failed\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+451 Could not complete sender verify callout\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+451 Could not complete sender verify callout\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+451 Could not complete sender verify callout\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+354 Enter message, ending with "." on a line by itself\r
+250 OK id=10HmaX-0005vi-00\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+354 Enter message, ending with "." on a line by itself\r
+250 OK id=10HmaY-0005vi-00\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+250 Accepted\r
+221 myhost.test.ex closing connection\r
+
+******** SERVER ********
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@localhost>
+250 OK mail sender
+250 OK recipient
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<bad@localhost>
+250 OK sender
+550 REJECTED rcpt
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@localhost>
+550 REJECT mail from
+530 BAD SEQUENCE no sender accepted for rcpt
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@otherhost>
+250 OK sender
+250 OK rcpt
+RSET
+250 OK reset
+MAIL FROM:<>
+RCPT TO:<postmaster@otherhost>
+250 OK sender
+550 NOT OK rcpt postmaster
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@otherhost2>
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<postmaster@otherhost2>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost3>
+250 OK
+250 OK accepting that random recipient
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost4>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost41>
+250 OK
+550 NOT OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@otherhost41>
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<postmaster@otherhost41>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@otherhost21>
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<postmaster@otherhost21>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok2@otherhost21>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost31>
+250 OK
+550 NOT OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@otherhost31>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<okok@otherhost31>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost31>
+250 OK
+550 NOT OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<okokok@otherhost31>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost51>
+250 OK
+*sleep 2
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<okokok@otherhost52>
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<pmsend@a.domain>
+RCPT TO:<postmaster@otherhost52>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<somesender@a.domain>
+RCPT TO:<abcd@x.y.z>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<abcd@x.y.z>
+250 OK
+*sleep 2
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<>
+RCPT TO:<ok@otherhost9>
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<>
+RCPT TO:<postmaster@otherhost9>
+250 OK
+550 NOT OK
+RCPT TO:<postmaster>
+250 OK
+QUIT
+250 OK
+End of script
+Listening on port 1224 ... 
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-Yeah mate
+250-PIPELINING
+250 OK
+MAIL FROM:<postmaster@myhost.test.ex>
+RCPT TO:<myhost.test.ex-dddddddd-testing@test.ex>
+250 OK
+550 RANDOM IS BAD
+RSET
+250 OK
+MAIL FROM:<postmaster@myhost.test.ex>
+RCPT TO:<z@test.ex>
+250 OK
+250 OK
+RSET
+250 OK
+MAIL FROM:<pmsend@b.domain>
+RCPT TO:<postmaster@test.ex>
+250 OK
+250 OK
+QUIT
+250 OK
+End of script