【问题标题】:Can the EHLO or HELO SMTP command be issued more than once?可以多次发出 EHLO 或 HELO SMTP 命令吗?
【发布时间】:2021-05-21 11:16:54
【问题描述】:

在符合 rfc5321 的 SMTP 实现中,是否可以多次发出 EHLO 或 HELO 命令?如果是这样,那会对连接状态产生什么影响?

第 4.1.1.1 节提到的所有内容都是

客户端 SMTP 应该通过发出 EHLO 命令来启动 SMTP 会话。 [...] 无论如何,客户必须在开始邮件交易之前发出 HELO 或 EHLO。这些命令,以及对其中之一的“250 OK”回复,确认 SMTP 客户端和 SMTP 服务器都处于初始状态,即没有正在进行的事务,并且所有状态表和缓冲区都已清除。

这意味着(尽管没有明确说明)如果事务正在进行,发送 EHLO 或 HELO 命令是一个顺序错误。

【问题讨论】:

    标签: smtp


    【解决方案1】:

    尽管暗示服务器必须处于初始状态,但第 4.1.4 节允许这样做:

    EHLO 命令可以由客户端在会话后期发出。如果它是在会话开始之后发出的,并且 EHLO 命令对于 SMTP 服务器是可接受的,则 SMTP 服务器必须清除所有缓冲区并重置状态,就像发出 RSET 命令一样。

    所以关于它“确认”客户端和服务器都处于初始状态的部分必须被阅读为意味着在收到 EHLO 响应后,服务器必须处于初始状态,客户端也必须处于初始状态(客户端意外的初始状态可能是 EHLO 开始的原因)

    【讨论】:

      猜你喜欢
      • 2018-07-17
      • 2011-12-13
      • 2013-12-31
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      相关资源
      最近更新 更多