4

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() 如何在后台工作?

4

2 回答 2

2

显然 PHPmail()必须在后台\n转换。\r\n

这类似于Perl使用\n表示“逻辑”换行符然后根据操作系统在内部翻译它们的做法。由于 PHP 的部分灵感来自 Perl,因此 PHP 中存在类似的机制也就不足为奇了。

于 2011-07-25T21:58:46.863 回答
1

php mail() 如何在后台工作?

正如您对 ciionfiguration 所期望的那样。默认情况下,它只是大多数系统上 sendmail 二进制文件的包装器和一个非常简单的 MUA,其中指定了 SMTP 主机。前者在其输入中使用 LF 作为行尾,而后者则需要 CRLF 作为其输出 - 因为行尾因操作系统而异,PHP 为邮件 (LF) 提供了统一的行尾

于 2011-07-25T22:38:03.903 回答