# CHUNKING reception
exim -DSERVER=server -bd -oX PORT_D
****
#
# plain, small message (no body)
client 127.0.0.1 PORT_D
??? 220
ehlo tester
??? 250-
??? 250-SIZE
??? 250-8BITMIME
??? 250-PIPELINING
??? 250-CHUNKING
??? 250 HELP
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 88 last
To: Susan@random.com
From: Sam@random.com
Subject: This is a bodyless test message

??? 250-
??? 250
quit
??? 221
****
#
# plain, small message (with body)
# nonlast 1st bdat, noop, last-bdat(0)
# immediate followon 2nd message
client 127.0.0.1 PORT_D
??? 220
ehlo tester
??? 250-
??? 250-
??? 250-
??? 250-
??? 250-
??? 250
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 100
To: Susan@random.com
From: Sam@random.com
Subject: This is a bodyfull test message

1234567890
??? 250
noop
??? 250
bdat 0 last
??? 250-
??? 250
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 10
To: Susan@bdat 78 last
??? 250
random.com
From: Sam@random.com
Subject: This is a bodyless test message

??? 250-
??? 250
quit
??? 221
****
#
# Same again but with RSET between the two
client 127.0.0.1 PORT_D
??? 220
ehlo tester
??? 250-
??? 250-
??? 250-
??? 250-
??? 250-
??? 250
mail from:some_ne@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 100
To: Susan@random.com
From: Sam@random.com
Subject: This is a bodyfull test message

1234567890
??? 250
noop
??? 250
bdat 0 last
??? 250-
??? 250
RSET
??? 250
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 10
To: Susan@bdat 78 last
??? 250
random.com
From: Sam@random.com
Subject: This is a bodyless test message

??? 250-
??? 250
quit
??? 221
****
#
# not enough data in chunk
#
client 127.0.0.1 PORT_D
??? 220
ehlo tester
??? 250-
??? 250-
??? 250-
??? 250-
??? 250-
??? 250
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 89 last
To: Susan@random.com
From: Sam@random.com
Subject: This is a bodyless test message

??? 421
****
#
# protocol failure cases
#
client 127.0.0.1 PORT_D
??? 220
ehlo tester
??? 250-
??? 250-
??? 250-
??? 250-
??? 250-
??? 250
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 88
To: Susan@random.com
From: Sam@random.com
Subject: This is a bodyless test message

??? 250
bdat 0
??? 504
quit
??? 221
****
#
# followon EHLO and another message
client 127.0.0.1 PORT_D
??? 220
ehlo tester
??? 250-
??? 250-
??? 250-
??? 250-
??? 250-
??? 250
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 88
To: Susan@random.com
From: Sam@random.com
Subject: This is a bodyless test message

??? 250
data
??? 503
RSET
??? 250
EHLO tester
??? 250-
??? 250-
??? 250-
??? 250-
??? 250-
??? 250
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 88
To: Susan@random.com
From: Sam@random.com
Subject: This is a bodyless test message

??? 250
data
??? 503
data
??? 503
quit
??? 221
****
#
# plain, small message (no body)
# pipelined
client 127.0.0.1 PORT_D
??? 220
EHLO tester
??? 250-
??? 250-SIZE
??? 250-8BITMIME
??? 250-PIPELINING
??? 250-CHUNKING
??? 250 HELP
MAIL FROM:<someone@some.domain>\r\nRCPT TO:<CALLER@test.ex>\r\nBDAT 88 LAST\r\nTo: Susan@random.com\r\nFrom: Sam@random.com\r\nSubject: This is a bodyless test message\r\n
??? 250
??? 250
??? 250-
??? 250
quit
??? 221
****
#
# plain, longer message (xple chunks), RCPT rejected
# pipelined
client 127.0.0.1 PORT_D
??? 220
EHLO tester
??? 250-
??? 250-SIZE
??? 250-8BITMIME
??? 250-PIPELINING
??? 250-CHUNKING
??? 250 HELP
MAIL FROM:<someone@some.domain>\r\nRCPT TO:<dummy@reject.ex>\r\nBDAT 86\r\nTo: Susan@random.com\r\nFrom: Sal@random.com\r\nSubject: This is a bodyless test message\r\nBDAT 6 LAST\r\nZZ\r\n
??? 250
??? 550
??? 503-
??? 503-
??? 503
??? 503-
??? 503-
??? 503
quit
??? 221
****
#
# Two rejected messages, pipielined, RSET between
client 127.0.0.1 PORT_D
??? 220
EHLO tester
??? 250-
??? 250-SIZE
??? 250-8BITMIME
??? 250-PIPELINING
??? 250-CHUNKING
??? 250 HELP
MAIL FROM:<some3ne@some.domain>\r\nRCPT TO:<dummy@reject.ex>\r\nBDAT 86\r\nTo: Susan@random.com\r\nFrom: Sal@random.com\r\nSubject: This is a bodyless test message\r\nBDAT 6 LAST\r\nZZ\r\n
??? 250
??? 550 relay not permitted
??? 503-All RCPT commands were rejected
??? 503-
??? 503
??? 503-All RCPT commands were rejected
??? 503-
??? 503
RSET
??? 250
NOOP
??? 250
MAIL FROM:<some4ne@some.domain>\r\nRCPT TO:<dummy@reject.ex>\r\nBDAT 86\r\nTo: Susan@random.com\r\nFrom: Sal@random.com\r\nSubject: This is a bodyless test message\r\nBDAT 6 LAST\r\nZZ\r\n
??? 250
??? 550
??? 503-All RCPT commands were rejected
??? 503-
??? 503
??? 503-
??? 503-
??? 503
quit
??? 221
****
#
# Two messages, pipielined, 1st abandoned midway, RSET between
client 127.0.0.1 PORT_D
??? 220
EHLO tester
??? 250-
??? 250-SIZE
??? 250-8BITMIME
??? 250-PIPELINING
??? 250-CHUNKING
??? 250 HELP
MAIL FROM:<some5ne@some.domain>\r\nRCPT TO:<CALLER@test.ex>\r\nBDAT 86\r\nTo: Susan@random.com\r\nFrom: Sa5@random.com\r\nSubject: This is a bodyless test message\r\nRSET
??? 250 OK
??? 250 Accepted
??? 250 86 byte chunk received
??? 250 Reset OK
MAIL FROM:<some6ne@some.domain>\r\nRCPT TO:<CALLER@test.ex>\r\nBDAT 86\r\nTo: Susan@random.com\r\nFrom: Sa6@random.com\r\nSubject: This is a bodyless test message\r\nBDAT 6 LAST\r\nZZ\r\n
??? 250 OK
??? 250 Accepted
??? 250 86 byte chunk received
??? 250- 6 byte chunk, total 93
??? 250 OK
QUIT
??? 221
****
#
#
# plain, small message (no body)
# header line with bad line-ending
client 127.0.0.1 PORT_D
??? 220
ehlo tester
??? 250-
??? 250-SIZE
??? 250-8BITMIME
??? 250-PIPELINING
??? 250-CHUNKING
??? 250 HELP
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 87 last
>>> To: Susan@random.com\n
From: Sam@random.com
Subject: This is a Bodyless test message

??? 552
quit
??? 221
****
#
# plain, small message (body w/o lineend)
client 127.0.0.1 PORT_D
??? 220
ehlo tester
??? 250-
??? 250-SIZE
??? 250-8BITMIME
??? 250-PIPELINING
??? 250-CHUNKING
??? 250 HELP
mail from:someone@some.domain
??? 250
rcpt to:CALLER@test.ex
??? 250
bdat 98 last
To: Susan@random.com
From: Sam@random.com
Subject: This is a bodyfull test message

>>> 1234567890
??? 250-
??? 250
quit
??? 221
****
#
# Test for smtp-smuggling.  Accepting only one message is good; two is bad.
client 127.0.0.1 PORT_D
??? 220
ehlo smuggler
??? 250-
??? 250-SIZE
??? 250-8BITMIME
??? 250-PIPELINING
??? 250-CHUNKING
??? 250 HELP
MAIL FROM:<legit@some.domain>
??? 250
RCPT TO:<CALLER@test.ex>
??? 250
DATA
??? 354
Subject: test of smuggled smtp

This is body for initial message
The next line is a bogus end-of-data attempt, followed by a try at a smuggled message:
>>> .\n
mail from:<smuggler@y>
rcpt to:<CALLER@test.ex>
bdat 86 last
Subject: send me all your money!

All your base are belong to us.  Send Bitcoins.
QUIT
.
??? 250
QUIT
??? 221
****
#
killdaemon
no_msglog_check
