📄 rfc2197.txt
字号:
RFC 2197 SMTP Service Extension September 1997
(5) MUST NOT buffer responses to EHLO, DATA, VRFY, EXPN,
TURN, QUIT, and NOOP.
(6) MUST NOT buffer responses to unrecognized commands.
(7) MUST send all pending responses immediately whenever
the local TCP input buffer is emptied.
(8) MUST NOT make assumptions about commands that are yet
to be received.
(9) SHOULD issue response text that indicates, either
implicitly or explicitly, what command the response
matches.
The overriding intent of these server requirements is to make it as
easy as possible for servers to conform to these pipelining
extensions.
5. Examples
Consider the following SMTP dialogue that does not use pipelining:
S: <wait for open connection>
C: <open connection to server>
S: 220 innosoft.com SMTP service ready
C: HELO dbc.mtview.ca.us
S: 250 innosoft.com
C: MAIL FROM:<mrose@dbc.mtview.ca.us>
S: 250 sender <mrose@dbc.mtview.ca.us> OK
C: RCPT TO:<ned@innosoft.com>
S: 250 recipient <ned@innosoft.com> OK
C: RCPT TO:<dan@innosoft.com>
S: 250 recipient <dan@innosoft.com> OK
C: RCPT TO:<kvc@innosoft.com>
S: 250 recipient <kvc@innosoft.com> OK
C: DATA
S: 354 enter mail, end with line containing only "."
...
C: .
S: 250 message sent
C: QUIT
S: 221 goodbye
Freed Standards Track [Page 5]
RFC 2197 SMTP Service Extension September 1997
The client waits for a server response a total of 9 times in this
simple example. But if pipelining is employed the following dialogue
is possible:
S: <wait for open connection>
C: <open connection to server>
S: 220 innosoft.com SMTP service ready
C: EHLO dbc.mtview.ca.us
S: 250-innosoft.com
S: 250 PIPELINING
C: MAIL FROM:<mrose@dbc.mtview.ca.us>
C: RCPT TO:<ned@innosoft.com>
C: RCPT TO:<dan@innosoft.com>
C: RCPT TO:<kvc@innosoft.com>
C: DATA
S: 250 sender <mrose@dbc.mtview.ca.us> OK
S: 250 recipient <ned@innosoft.com> OK
S: 250 recipient <dan@innosoft.com> OK
S: 250 recipient <kvc@innosoft.com> OK
S: 354 enter mail, end with line containing only "."
...
C: .
C: QUIT
S: 250 message sent
S: 221 goodbye
The total number of turnarounds has been reduced from 9 to 4.
The next example illustrates one possible form of behavior when
pipelining is used and all recipients are rejected:
S: <wait for open connection>
C: <open connection to server>
S: 220 innosoft.com SMTP service ready
C: EHLO dbc.mtview.ca.us
S: 250-innosoft.com
S: 250 PIPELINING
C: MAIL FROM:<mrose@dbc.mtview.ca.us>
C: RCPT TO:<nsb@thumper.bellcore.com>
C: RCPT TO:<galvin@tis.com>
C: DATA
S: 250 sender <mrose@dbc.mtview.ca.us> OK
S: 550 remote mail to <nsb@thumper.bellore.com> not allowed
S: 550 remote mail to <galvin@tis.com> not allowed
S: 554 no valid recipients given
C: QUIT
S: 221 goodbye
Freed Standards Track [Page 6]
RFC 2197 SMTP Service Extension September 1997
The client SMTP waits for the server 4 times here as well. If the
server SMTP does not check for at least one valid recipient prior to
accepting the DATA command, the following dialogue would result:
S: <wait for open connection>
C: <open connection to server>
S: 220 innosoft.com SMTP service ready
C: EHLO dbc.mtview.ca.us
S: 250-innosoft.com
S: 250 PIPELINING
C: MAIL FROM:<mrose@dbc.mtview.ca.us>
C: RCPT TO:<nsb@thumper.bellcore.com>
C: RCPT TO:<galvin@tis.com>
C: DATA
S: 250 sender <mrose@dbc.mtview.ca.us> OK
S: 550 remote mail to <nsb@thumper.bellore.com> not allowed
S: 550 remote mail to <galvin@tis.com> not allowed
S: 354 enter mail, end with line containing only "."
C: .
C: QUIT
S: 554 no valid recipients
S: 221 goodbye
6. Security Considerations
This document does not discuss security issues and is not believed to
raise any security issues not endemic in electronic mail and present
in fully conforming implementations of [1].
7. Acknowledgements
This document is based on the SMTP service extension model presented
in RFC 1425. Marshall Rose's description of SMTP command pipelining
in his book "The Internet Message" also served as a source of
inspiration for this extension.
8. References
[1] Postel, J., "Simple Mail Transfer Protocol", STD 10,
RFC 821, August 1982.
[2] Klensin, J., Freed, N., Rose, M., Stefferud, E., and
D. Crocker, "SMTP Service Extensions", RFC 1869,
November 1995.
[3] Freed, N., "SMTP Service Extension for Command Pipelining",
RFC 1854, October 1995.
Freed Standards Track [Page 7]
RFC 2197 SMTP Service Extension September 1997
[4] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997.
9. Author's Address
Ned Freed
Innosoft International, Inc.
1050 Lakes Drive
West Covina, CA 91790
USA
Phone: +1 626 919 3600
Fax: +1 626 919 3614
EMail: ned.freed@innosoft.com
This document is a product of work done by the Internet Engineering
Task Force Working Group on Messaging Extensions, Alan Cargille,
chair.
Freed Standards Track [Page 8]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -