PHP手册(http://php.net/manual/en/function.mail.php)说:
每一行应用LF (\n)分隔。行不应大于70个字符。
但实际的RFC 5322提供了完全不同的信息:
2.3。正文消息的正文仅仅是由US-ASCII字符组成的行。对该机构的唯一两个限制如下: O CR和LF只能作为CRLF一起发生;它们不能在身体中独立出现。正文中的字符行必须限制在998个字符,并且应该限制在78个字符,不包括CRLF。
所以RFC说只应该使用\r\n。我不明白-- php mail()在后台是如何工作的?
发布于 2011-07-25 22:38:03
php mail()在后台是如何工作的?
和你想象中的一模一样。默认情况下,它只是大多数系统上sendmail二进制文件的包装器,以及一个非常简单的MUA,其中指定了SMTP主机。前者使用LF作为输入的结尾行,而后者则需要CRLF来输出--由于行尾随操作系统而异,PHP为邮件(LF)提供了统一的行尾。
发布于 2011-07-25 21:58:46
显然,PHP mail()必须在后台将\n转换为\r\n。
这类似于使用Perl实践来表示“逻辑”换行符,然后根据操作系统在内部翻译它们。由于PHP的部分灵感来自Perl,所以PHP中存在类似的机制并不令人惊讶。
https://stackoverflow.com/questions/6822819
复制相似问题