SMTP:\ r \ n \ r \ n(没有秒\ n)作为双换行符

时间:2011-05-29 09:54:02

标签: smtp newline rfc

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

2 个答案:

答案 0 :(得分:5)

RFC2821。第2.3.7节:

  

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

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

- 戴夫

答案 1 :(得分:-2)

各种操作系统对Newline字符有各种表示。检查instructions here on newline characters.。顺便说一句,程序员通常会同时使用\n\r来防止系统上的任何冲突。您需要检查系统支持哪个换行符。如果是\r,那么您将获得所需的两个字符。但如果是\n,则错误在于发件人。