SMTP 协议已经被扩展 (RFC 1869) 为允许附加命令的协商。这是通过使用新的 EHLO 命令(替代 RFC 821 的 HELO 命令)来进行的。扩展的 SMTP 服务器通过提供其支持的扩展列表来响应 EHLO。未扩展的服务器返回未知命令错误,然后客户端发送旧的 HELO 命令。
这种应变策略通常与扩展的服务器和未扩展的服务器都能协同工作。但是不按照 RFC 821 实现 SMTP 的服务器却会出现问题。尤其是,某些不兼容的服务器在收到未知命令后会断开连接。
当任何服务器收到 EHLO 后断开连接时,SMTP 客户端实现尝试重新连接并使用 HELO 的策略。但是,如果远程服务器在收到 EHLO 时断开连接并且出现问题,则该策略可能不起作用。
提供了通道关键字 ehlo、noehlo 和 checkehlo,用于处理此类情况。关键字 ehlo 通知 MTA 在所有初始连接尝试中使用 EHLO 命令。关键字 noehlo 禁用所有对 EHLO 命令的使用。关键字 checkehlo 测试远程 SMTP 服务器返回的响应标题中是否含有字符串 "ESMTP"。如果找到该字符串,则使用 EHLO;否则,使用 HELO。默认行为将在所有初始连接尝试中使用 EHLO,除非标题行含有字符串 "fire away",在这种情况下将使用 HELO;请注意,没有与此默认行为相对应的关键字,它介于 ehlo 和 checkehlo 关键字产生的行为之间。