【发布时间】:2011-10-12 23:06:25
【问题描述】:
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() 是如何在后台工作的?
【问题讨论】:
-
PHP 的开源...您可以很容易地阅读源代码并查看 mail() 正在做什么。仅仅因为 mail() 文档说以一种方式提供东西,而底层 RFC 说其他东西并不意味着 PHP 不能在内部进行一些翻译。
-
这个错误中的某些内容可能会让您感兴趣:bugs.php.net/bug.php?id=15841 (不确定这是一个准确的答案,但您应该找到一些关于 qmail、sendmail、windows 等的信息)
-
@Marc B:当然这很容易,为什么 PHP 开发人员很难通过大量的 c 代码库?我早餐吃这样的问题。