# cutthrough_delivery basic operation
need_ipv4
munge loopback
#
server PORT_S
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 Recipient OK
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userx@domain.com>
DATA

.
QUIT
****
# cutthrough_delivery into HELO-only server
server PORT_S
220 SMTP only spoken here
EHLO
550 Not here, mate
HELO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 Recipient OK
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userz@domain.com>
DATA

.
QUIT
****
# cutthrough for 2 recipients in one domain
server PORT_S
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 Recipient OK
RCPT TO:
250 Recipient OK
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<usery@domain.com>
RCPT TO:<userx@domain.com>
DATA

.
QUIT
****
#
#
#
#
#
# cutthrough_delivery basic operation, again
server PORT_S
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 Recipient OK
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userx@domain.com>
DATA
X-hdr-rtr: qqq
X-hdr-tpt: zzz

body
.
QUIT
****
#
#
#
#
# cutthrough for 2 recipients in one domain
# first one denied
# so we get a 2nd conn with the traditional delivery for the second
server PORT_S 2
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
550 Not that one
QUIT
250 OK
*eof
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 ok rcpt-1
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
#
# Foregound delivery needed else the following subtest reception logging happens before this ones
# delivery process logs and terminates; the interlock is only on the parent exim terminating.
exim -bs -odf
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<no@domain.com>
RCPT TO:<userx@domain.com>
DATA

.
QUIT
****
#
#
#
#
# cutthrough for 2 recipients in one domain
# second one denied
# so we get a 2nd conn with the traditional delivery of the 1st
server PORT_S 2
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 first recipient ok
RCPT TO:
550 Not that one
QUIT
250 OK
*eof
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 ok rcpt-1
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs -odf
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userx@domain.com>
RCPT TO:<no@domain.com>
DATA

.
QUIT
****
#
#
#
#
#
# cutthrough for 2 recipients in one domain
# second one uses a different transport
# so we get a 2nd conn with 2nd rcpt, doing the fake verify
# then 3rd & 4th conns with the traditional deliveries on the different transports
server PORT_S 4
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 first recipient ok
QUIT
250 OK
*eof
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 second recipient ok
QUIT
250 OK
*eof
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 ok rcpt-1
DATA
354 Send data
.
250 OK
QUIT
250 OK
*eof
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 ok rcpt-2
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs -odf
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userx@domain.com>
RCPT TO:<special_tpt@domain.com>
DATA

.
QUIT
****
#
#
#
#
#
# cutthrough for 2 recipients in different domains, handled by the same tpt & host
server PORT_S
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 ok rcpt-1
RCPT TO:
250 ok rcpt-2
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userx@domain1.com>
RCPT TO:<usery@domain2.com>
DATA

.
QUIT
****
#
#
#
#
#
# cutthrough for 2 recipients in different domains, handled by the same tpt but different hosts
# so we get a 2nd conn with 2nd rcpt, doing the fake verify
# then 3rd & 4th conns with the traditional deliveries on the different transports
server PORT_S 4
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 first recipient ok
QUIT
250 OK
*eof
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 second recipient ok
QUIT
250 OK
*eof
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 ok rcpt-1
DATA
354 Send data
.
250 OK
QUIT
250 OK
*eof
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 ok rcpt-2
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs -odf
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userx@domain.com>
RCPT TO:<usery@special.com>
DATA

.
QUIT
****
#
#
#
#
#
# cutthrough for 2 recipients in different domains, handled by the same tpt & host
# but via a dnslookup router (all previous were manualroute)
server PORT_S
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 ok rcpt-1
RCPT TO:
250 ok rcpt-2
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs -odf
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userx@localhost4.test.ex>
RCPT TO:<usery@thishost.test.ex>
DATA

.
QUIT
****
#
#
#
# data having line with (logical, doubled on wire) single dot
server PORT_S
220 ESMTP
EHLO
250 OK
MAIL FROM:
250 Sender OK
RCPT TO:
250 Recipient OK
DATA
354 Send data
.
250 OK
QUIT
250 OK
****
exim -bs -odf
EHLO myhost.test.ex
MAIL FROM:<CALLER@myhost.test.ex>
RCPT TO:<userx@domain.com>
DATA
Subject: singledot test

This data has a line with a single dot... next:
..
and this is the line right after.
Next we have a line with a leading dot:
..test
and this is the next line.

.
QUIT
****
#
#
sortlog
# End
