Sun Java System Messaging Server 6.3 管理指南

12.4.2.2 EHLO 命令支持

关键字:ehlonoehlocheckehlo

SMTP 协议已经被扩展 (RFC 1869) 为允许附加命令的协商。这是通过使用新的 EHLO 命令(替代 RFC 821 的 HELO 命令)来进行的。扩展的 SMTP 服务器通过提供其支持的扩展列表来响应 EHLO。未扩展的服务器返回未知命令错误,然后客户端发送旧的 HELO 命令。

这种应变策略通常与扩展的服务器和未扩展的服务器都能协同工作。但是不按照 RFC 821 实现 SMTP 的服务器却会出现问题。尤其是,某些不兼容的服务器在收到未知命令后会断开连接。

当任何服务器收到 EHLO 后断开连接时,SMTP 客户端实现尝试重新连接并使用 HELO 的策略。但是,如果远程服务器在收到 EHLO 时断开连接并且出现问题,则该策略可能不起作用。

提供了通道关键字 ehlonoehlocheckehlo,用于处理此类情况。关键字 ehlo 通知 MTA 在所有初始连接尝试中使用 EHLO 命令。关键字 noehlo 禁用所有对 EHLO 命令的使用。关键字 checkehlo 测试远程 SMTP 服务器返回的响应标题中是否含有字符串 "ESMTP"。如果找到该字符串,则使用 EHLO;否则,使用 HELO。默认行为将在所有初始连接尝试中使用 EHLO,除非标题行含有字符串 "fire away",在这种情况下将使用 HELO;请注意,没有与此默认行为相对应的关键字,它介于 ehlocheckehlo 关键字产生的行为之间。