2

我有 SMTP 解析器,它工作得很好。从第三方软件接收流量时出现问题,该软件将双换行符发送为“\r\n\r”(没有第二个“\n”)。目前,此类连接被终止为不兼容的 SMTP。有人可以解释一下 RFC 对这种“有趣”的双换行符到底是怎么说的吗?我可以假设发送这样的数据的软件做错了什么吗?

4

2 回答 2

6

RFC2821。第 2.3.7 节:

SMTP 命令和消息
数据(除非被服务扩展更改)以“行”的形式传输。行由零个或多个数据
字符组成,以序列 ASCII 字符“CR”(十六进制值 0D)结尾,紧接着是 ASCII 字符“LF”(十六进制值 0A)。

http://www.ietf.org/rfc/rfc2821.txt

——戴夫

于 2011-05-29T15:02:22.563 回答
-2

各种操作系统对换行符有不同的表示。在此处查看有关换行符的说明。. 顺便说一句,程序员之间的一种常见做法是同时使用\n\r来防止系统上的任何冲突。您需要检查您的系统支持哪个换行符。如果是\r,那么您将获得所需的两个字符。但如果是\n,则错误在于发件人。

于 2011-05-29T09:59:19.383 回答