# CHUNKING transmission, short messages, PIPELINING # # Pipelined cases # # Basic short message server PORT_S 220 Greetings EHLO 250-Hello there 250-PIPELINING 250 CHUNKING MAIL FROM RCPT TO BDAT 345 LAST *data 345 250 OK mail 250 OK rcpt 250 OK bdat QUIT 225 OK *eof **** sudo exim -odf -bS EHLO test MAIL FROM: RCPT TO: DATA Subject: foo data . QUIT **** # # Error case: server wrongly expected more data, client gets timeout for data-ack # XXX This is a problem with data/quit pipelining. The succeeding SMTP command cannot # be distinguished from the data, by the errroneous server. # Of course, we could avoid such pipelining on the client side, when BDAT is used. # But - is this any worse than a server failing to spot the data-dot under DATA? # I think not; both are culpable, and there is only so much the client can do. #server PORT_S #220 Greetings #EHLO #250-Hello there #250-PIPELINING #250 CHUNKING #MAIL FROM #RCPT TO #BDAT 345 LAST #*data 346 #250 good mail cmd #**** #sudo exim -odf -bS #EHLO test #MAIL FROM: #RCPT TO: #DATA #Subject: foo # #data #. #QUIT #**** # # Error case: server wrongly expected less data # client get the data-ack, sends quit - but server # sees a munged quit due to the outstanding data tail server PORT_S 220 Greetings EHLO 250-Hello there 250-PIPELINING 250 CHUNKING MAIL FROM RCPT TO BDAT 345 LAST *data 344 250 OK mail 250 OK rcpt 250 OK bdat QUIT 225 OK **** sudo exim -odf -bS EHLO test MAIL FROM: RCPT TO: DATA Subject: foo data . QUIT **** # # server rejects MAIL cmd # transport coding does not handle the possible RSET-and-another transaction, # but always QUITs server PORT_S 220 Greetings EHLO 250-Hello there 250-PIPELINING 250 CHUNKING MAIL FROM RCPT TO BDAT 345 LAST *data 345 550 unacceptable mail-from 550 rcpt ungood lacking mail-from 500 bdat ungood lacking mail-from QUIT 225 OK **** sudo exim -odf -bS EHLO test MAIL FROM: RCPT TO: DATA Subject: foo data . QUIT **** # # server tmp-rejects MAIL cmd server PORT_S 220 Greetings EHLO 250-Hello there 250-PIPELINING 250 CHUNKING MAIL FROM RCPT TO BDAT 346 LAST *data 346 450 greylisted mail-from 550 rcpt ungood lacking mail-from 500 bdat ungood lacking mail-from QUIT 225 OK **** sudo exim -odf -bS EHLO test MAIL FROM: RCPT TO: DATA Subject: foo data . QUIT **** # # server rejects RCPT cmd server PORT_S 220 Greetings EHLO 250-Hello there 250-PIPELINING 250 CHUNKING MAIL FROM RCPT TO BDAT 345 LAST *data 345 250 OK mail 550 no such recipient 500 oops bdat QUIT 225 OK **** sudo exim -odf -bS EHLO test MAIL FROM: RCPT TO: DATA Subject: foo data . QUIT **** # # # server rejects BDAT cmd server PORT_S 220 Greetings EHLO 250-Hello there 250-PIPELINING 250 CHUNKING MAIL FROM RCPT TO BDAT 345 LAST *data 345 250 OK mail 250 OK rcpt 500 oops bdat QUIT 225 OK **** sudo exim -odf -bS EHLO test MAIL FROM: RCPT TO: DATA Subject: foo data . QUIT **** # # server tmp-rejects BDAT cmd server PORT_S 220 Greetings EHLO 250-Hello there 250-PIPELINING 250 CHUNKING MAIL FROM RCPT TO BDAT 345 LAST *data 345 250 OK mail 250 OK rcpt 400 not right now bdat QUIT 225 OK **** sudo exim -odf -bS EHLO test MAIL FROM: RCPT TO: DATA Subject: foo data . QUIT **** # # no_msglog_check