Name
PIPELINING
Synopsis
RFC2920 defines an SMTP extension called “pipelining.” With pipelining, SMTP commands and replies do not have to be synchronized. To illustrate, consider the following example of a normal (not pipelined) SMTP dialog, in which the server machine’s half of the dialog is shown in bold font and the client machine’s dialog is not:
220 your.host ESMTP Sendmail 8.12.2/8.12.2; Sat, 16 Feb 2002 08:12:44 -0700 (MST)
HELO some.domain.com250 your.host.domain Hello some.domain.com [123.45.67.8], pleased to meet you
MAIL FROM: <friend@some.domain.com>250 2.1.0 <friend@some.domain.com>
... Sender ok RCPT TO: <bcx@your.host>250 2.1.5 <bcx@your.host>
... Recipient ok DATA354 Enter mail, end with "." on a line by itself
←message sent, end with a dot .250 2.0.0 g1GFCigc025138 Message accepted for delivery
QUIT221 2.0.0 your.host closing connection
The important point to notice about this SMTP conversation is that it
is synchronous. The client machine always waits for a reply from the
server before sending its next command. For example, in the preceding
dialog it waits for the 220
before sending the
HELO
command, and then waits for the
250
before sending the MAIL
command.
Pipelining allows the commands of the client machine to be sent without waiting for the replies from the server machine.[9] The same dialog as before, but with pipelining enabled, might look like the following (again the server is shown in bold font):
220 your.host ESMTP Sendmail 8.12.2/8.12.2; Sat, 16 Feb ...
Get Sendmail, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.