问题描述
||
我有可以正常工作的SMTP解析器。从第三方软件接收流量时出现问题,该软件发送双换行符为\“ \\ r \\ n \\ r \”(不包含第二个\“ \\ n \”)。当前,此类连接被终止为不兼容的SMTP。有人可以解释一下RFC确切地说出了这种“有趣的”双换行符吗?我可以假设发送这样的数据的软件确实做错了吗?
解决方法
RFC2821第2.3.7节:
SMTP命令,除非已更改
通过服务扩展,消息
数据以“行”传输。
行包含零个或多个数据
由序列终止的字符
ASCII字符“ CR”(十六进制值0D)
紧随其后的是ASCII
字符\“ LF \”(十六进制值0A)。
http://www.ietf.org/rfc/rfc2821.txt
-戴夫
, 各种操作系统都有换行符的各种表示形式。请查看此处有关换行符的说明。.顺便说一句,程序员之间通常将ѭ0和ѭ1同时使用,以防止系统发生冲突。您需要检查系统支持哪些换行符。如果它是
\\r
,那么您将同时获得两个必需的字符。但是,如果它的值为“ 0”,则错误在于发送者。