来自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扩展,那么客户端如何知道它是唯一的,它不应该等待服务器发送其他扩展?
答案 0 :(得分:1)
回复SMTP EHLO
命令包含与中止的行
250-...
- 要遵循的更多回复行
250 ...
- 最终回复行
4.1.1.1扩展HELLO(EHLO)或HELLO(HELO)
...
通常,对EHLO的回复将是多行回复。每一行 响应包含一个关键字,并且可选地包含一个或多个 参数。遵循多行回复的常规语法,这些 keyworks遵循代码(250)和连字符,除了最后一个 line,以及最后一行的代码和空格。