当我连接到SMTP服务器并发出EHLO(ESMTP)问候语时,某些服务器会响应:
250-STARTTLS
和其他服务器一样,回复:
250 STARTTLS
哪个是对的? RFC 3207表明连字符是正确的。但RFC 2487表明不应该是连字符。他们都是正确的吗?当然,部署的代码通常优先于标准,但澄清这一点会很好。
作为一个随机样本,MessageLabs提供" 250 STARTTLS"而Hotmail / Outlook提供" 250-STARTTLS"。
答案 0 :(得分:0)
答案在RFC 2821。它指定了以下内容:
通常,对EHLO的回复将是多行回复。每一行 响应包含一个关键字,并且可选地包含一个或多个 参数。遵循多行回复的常规语法,这些 关键字遵循代码(250)和连字符,除了最后一个 line,代码和最后一行的空格
因此RFC2487没有空格,因为它是示例SMTP会话的最后一行。 RFC3207带有连字符,因为它不是最后一行(这适用于我上面的Hotmail / Messagelabs示例)。