PHP手册(http://php.net/manual/en/function.mail.php)说:
每行应使用LF(\ n)分隔。线不应该 大于70个字符。
但实际的RFC 5322给出了完整的不同信息:
2.3。正文消息的正文只是US-ASCII的行 字符。身体上唯一的两个限制如下:
o CR和LF必须一起作为CRLF出现;它们不得出现 独立于体内。 o正文中的字符行 必须限制为998个字符, 并且应该限制在78个字符以外,不包括CRLF。
所以 - RFC说只应该使用\ r \ n。 我不明白 - php mail()如何在后台运行?
答案 0 :(得分:2)
显然,PHP mail()
必须在后台将\n
转换为\r\n
。
这类似于Perl's practice使用\n
来表示“逻辑”换行符,然后根据操作系统在内部进行翻译。由于PHP部分受到Perl的启发,因此PHP中存在类似的机制并不奇怪。
答案 1 :(得分:1)
php mail()如何在后台运行?
正如您对cionfiguration所期望的那样。默认情况下,它只是大多数系统上sendmail二进制文件的包装器,以及指定SMTP主机的非常简单的MUA。前者使用LF作为其输入结束的行,后者需要CRLF作为其输出 - 因为行结束因操作系统而异,PHP为邮件提供统一的行结束(LF)