不同系统下回车换行符的使用可能导致发送出去的邮件不正常

在PHP中编写邮件发送代码时,由于回车换行符的不当使用,导致程序在Red Hat开发环境中正常运行,但在FreeBSD生产环境中出现问题。解决方案是将'/r/n'替换为'/n'。本文还探讨了Windows、Linux/Unix和Mac系统中回车和换行的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用PHP编写一段发送邮件的代码时 由于对回车换行符的错误使用导致程序在开发环境中正常工作 在部署到生产环境时出现问题

 

详细信息:

 

a, 开发环境

Red Hat 5.4(Tikanga)

 

b, 生产环境

FreeBSD 6.1

 

c, 示例代码如下:

$email_1 = "123@123.com ";

$email_2 = "123@321.com ";

$email_3 = "321 @123.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下只有回车,没有换行。)

 

备注:

关于各系统下回车和换行的区别,我只是在网络上找到相关的概述,还请专业人士可以给出详细的解释。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值