On Tue, 18 Dec 2007, David Sparks wrote:
I also thought piplining can't start until after these messages go back and forth: banner,ehlo,250 PIPELINING,<begin pipelining> so this is not the behavior I would expect. Can any experts provide some insight?
You should read RFC 2920 and work out what is permitted, what is required, and what is forbidden.
I suspect you'll find that what you are seeing is permitted - from the server end. From your end (the client end) you are clearly violating a number of aspects of the protocol - you should not send ehlo before the banner, and you should not assume pipelining until the server tells you that it is available.