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