Hello folks, Postfix appears to be breaking RFC 5321 by speculatively injecting the entire envelope session passing over replies from the server.
In src/smtp/smtp_proto.c , smtp_loop() handles the delivery loop by deliberately "pipelining" commands and replies in separate queues. Only the SMTP greeting is waited for in the whole envelope, but curiously, RFC 5321 appears to specify the opposite: in 4.3.1 : """ One important reply is the connection greeting. [..] The sender SHOULD wait for this greeting message before sending any commands. """ """ The communication between the sender and receiver is an alternating dialogue, controlled by the sender. As such, the sender issues a command and the receiver responds with a reply. Unless other arrangements are negotiated through service extensions, the sender MUST wait for this response before sending further commands. """ I didn't track back in which version this behavior originates, but it still appears to be present in 2.7.0 . cheers! mij