RFC 2821 - 客户端如何知道何时发送第一条命令?
RFC 2821 - how does client know when to send first command?
来自 RFC 2821:
D.2 中止的 SMTP 事务场景
S: 220 foo.com Simple Mail Transfer Service Ready
C: EHLO bar.com
S: 250-foo.com greets bar.com
S: 250-8BITMIME
S: 250-SIZE
S: 250-DSN
S: 250 HELP
C: MAIL FROM:<Smith@bar.com>
S: 250 OK
C: RCPT TO:<Jones@foo.com>
S: 250 OK
C: RCPT TO:<Green@foo.com>
S: 550 No such user here
C: RSET
S: 250 OK
C: QUIT
S: 221 foo.com Service closing transmission channel
我的理解是
S: 250-8BITMIME
S: 250-SIZE
S: 250-DSN
S: 250 HELP
是服务器支持的扩展列表。
在给定的示例中,在收到此列表后,客户端发送第一个命令 EHLO。
但是它怎么知道这个列表中不会有更多的项目呢?没有来自服务器的命令,如 "LISTING_EXTENSIONS_DONE"。
所以例如如果服务器只有 8BITTIME 扩展,客户端如何知道它是唯一的并且它不应该等待服务器发送其他扩展?
回复 SMTP EHLO
命令包含以
开头的行
250-...
- 更多回复行
250 ...
- 最后回复行
4.1.1.1 Extended HELLO (EHLO) or HELLO (HELO)
...
Normally, the response to EHLO will be a multiline reply. Each line
of the response contains a keyword and, optionally, one or more
parameters. Following the normal syntax for multiline replies, these
keyworks follow the code (250) and a hyphen for all but the last
line, and the code and a space for the last line.
来自 RFC 2821:
D.2 中止的 SMTP 事务场景
S: 220 foo.com Simple Mail Transfer Service Ready
C: EHLO bar.com
S: 250-foo.com greets bar.com
S: 250-8BITMIME
S: 250-SIZE
S: 250-DSN
S: 250 HELP
C: MAIL FROM:<Smith@bar.com>
S: 250 OK
C: RCPT TO:<Jones@foo.com>
S: 250 OK
C: RCPT TO:<Green@foo.com>
S: 550 No such user here
C: RSET
S: 250 OK
C: QUIT
S: 221 foo.com Service closing transmission channel
我的理解是
S: 250-8BITMIME
S: 250-SIZE
S: 250-DSN
S: 250 HELP
是服务器支持的扩展列表。 在给定的示例中,在收到此列表后,客户端发送第一个命令 EHLO。 但是它怎么知道这个列表中不会有更多的项目呢?没有来自服务器的命令,如 "LISTING_EXTENSIONS_DONE"。 所以例如如果服务器只有 8BITTIME 扩展,客户端如何知道它是唯一的并且它不应该等待服务器发送其他扩展?
回复 SMTP EHLO
命令包含以
开头的行
250-...
- 更多回复行
250 ...
- 最后回复行
4.1.1.1 Extended HELLO (EHLO) or HELLO (HELO)
...
Normally, the response to EHLO will be a multiline reply. Each line of the response contains a keyword and, optionally, one or more parameters. Following the normal syntax for multiline replies, these keyworks follow the code (250) and a hyphen for all but the last line, and the code and a space for the last line.