在使用PHP编写一段发送邮件的代码时 由于对回车换行符的错误使用导致程序在开发环境中正常工作 在部署到生产环境时出现问题
详细信息:
a, 开发环境
Red Hat 5.4(Tikanga)
b, 生产环境
FreeBSD 6.1
c, 示例代码如下:
$email_1 = "123@123.com ";
$email_2 = "123@321.com ";
$headers = "MIME-Version: 1.0";
$headers .= "/r/nContent-Type: text/html; charset=iso-8859-1";
$headers .= "/r/nContent-Transfer-Encoding: 7bit";
$headers .= "/r/nFrom: $email_1/r/nReply-To: $email_2";
$subject = "test";
$content = "<html><head></head><body>test</body></html>";
mail($email_3, $subject, $content, $headers);
上述代码在开发环境中工作正常 在生产环境中需要将'/r/n'替换成'/n' 否则 PHP会不识别这里自定义的邮件header
另附windows, linux/unix, mac下的回车(carriage return)和换行(line feed)
windows <换行><回车> /n/r
linux/unix <换行> /n (linux/unix系统下只有换行,没有回车。)
mac <回车> /r (mac下只有回车,没有换行。)
备注:
关于各系统下回车和换行的区别,我只是在网络上找到相关的概述,还请专业人士可以给出详细的解释。