SMTP: \r\n\r (without second \n) as double newline

2019-02-26 08:11发布

I have SMTP parser that works mostly fine. There is a problem when receiving traffic from third party software that sends double newlines as "\r\n\r" (without the second "\n"). Currently such connections are terminated as non-compliant SMTP. Can somebody explain what exactly RFC says about such "funny" double newlines? Can I asume that software that sends data like that is doing something really wrong?

标签: smtp newline rfc
2条回答
Anthone
2楼-- · 2019-02-26 08:19

Various operating systems have various representations for Newline characters. Check the instructions here on newline characters.. By the way its a common practice among programmers to use both the \n and \r together to prevent any conflicts on the system. You need to check which newline character is supported by your system. If its \r then you are getting both the required characters. But if its \n, then the error lies with the sender.

查看更多
男人必须洒脱
3楼-- · 2019-02-26 08:37

RFC2821. Section 2.3.7:

SMTP commands and, unless altered by a service extension, message
data, are transmitted in "lines". Lines consist of zero or more data
characters terminated by the sequence ASCII character "CR" (hex value 0D) followed immediately by ASCII character "LF" (hex value 0A).

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

--Dave

查看更多
登录 后发表回答