\\ \\ [R N不工作,但\\ \\ [Rñ\\ \\ [R作品ň(\\r\\n not wor

2019-10-18 15:02发布

我通过CodeIgniter的的电子邮件 - 发送电子邮件>发送()。 我也碰到过,我想不通的异常。

“\ r \ n”未在电子邮件的某一部分工作。 但是如果我切换为 “\ r \ n” 来为 “\ r \ n \ r \ n” 它的工作原理。 通过作品我的意思是,它增加了预计2个换行符。

该方面的问题是在底部。

$order  = $this->ordersclass->getOrder( $order_id );
$quantity   = $order['no_codes'];
$client = $this->clientclass->getClient( $order['client_id'] );
$multi_d    = $this->session->userdata('multi-use-codes-d');
$multi_t    = $this->session->userdata('multi-use-codes-t');

$this->load->library('email');

$to         = $client['client_email'];
$subject    = 'Personal Resiliency Builder Order';
$from       = 'accounts@resiliencybuilder.com.au';

$message  = "TAX INVOICE\r\n\r\n";
$message .= "Client Name: ". $client['client_name']."\r\n";
$message .= "Invoice Number: ".$order['order_id']."\r\n";
$message .= "Invoice Date: ".$order['order_timestamp']."\r\n\r\n";

$message .= "TOTAL AMOUNT PAYABLE:     $".number_format($order['order_amount'],2)."\r\n";
$message .= "GST ON SERVICES:          $".number_format(($order['order_amount']/110)*10,2)."\r\n\r\n";

$message .= "ACCOUNT PAID IN FULL VIA CREDIT CARD\r\n\r\n";
$message .= "=============================================================\r\n";

$message .= "DESCRIPTION OF SERVICES\r\n\r\n";

$message .= "Code List Name: ".$this->session->userdata('codelistname') . "\r\n";
$message .= "Quantity: ".$quantity ."\r\n";
$message .= "Single-use Developmental Reports Purchased: ".$order['no_codes_d']."\r\n";
$message .= "Single-use Thriving Reports Purchased: ".$order['no_codes_t']."\r\n";

最后2个$message变量的问题。

电子邮件看起来是这样的:

赔付总额:$ 1,771.00

GST上的服务:$ 161.00

账户缴交全额通过信用卡

================================================== ===========

服务说明

代码列表名称:fggdgfdgfd

数量:12

单用发展报告购买:7单用满枝报告购买:5

多用发展报告购买:5多用满枝报告购买:5

解决了。 现在,寻找它背后的认识。

许多试验后,失败的公式为:失效= X + Y:

失败= X字符长度+空格。

此外,它的接缝与Microsoft Outlook 20XX出现此问题,但不能与Gmail或Hotmail。

例:

$消息= “一次性使用:发展报告:DDDDD \ r \ n”。 //////失败 - 长度41
$消息= “一次性使用:DevelopmentaldReportsd:DDDDDD \ r \ n” 个。 ///失败 - 长度41
$消息= “一次性使用:dDevelopmentaldReportsd:DDDDDD \ r \ n” 个。 //通 - 长度41
$消息= “一次性使用:DevelopmentaldReportsd:dddddddddddddddddddddddddddddd \ r \ n” 个。 //通

Answer 1:

注意:这个答案是使用CodeIgniter的版本2.1.3开发商

这不是任何其他PHP框架进行测试。

基于通过改变字符长度,添加/删除空间,并与不同的电子邮件服务测试许多测试:

  • 展望版本20XX
  • Hotmail的
  • Gmail的

它是安全的结论是笨版本2.1.3中,鉴于各地的40个字符+ 1个空格+一个换行符和发送电子邮件给所有三个电子邮件向上面的字符串长度的方式解析消息,只有Outlook将确定换行字符是一个“额外”换行符,因此将其删除。

它有可能改变世界观设定,从去除多余的换行符禁用Outlook

作为链接提示: 微软的Outlook指南禁用额外的换行符删除

EASY显影液:

保持你的字符串长度为最多39个字符(包括空格)。



文章来源: \\r\\n not working but \\r\\n\\r\\n works