我正在通过 CodeIgniter 的 email->send() 发送电子邮件。我遇到了一个我无法弄清楚的异常情况。
“\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";
最后两个$message
变量是问题所在。
电子邮件如下所示:
应付总额:1,771.00 美元
服务消费税:161.00 美元
通过信用卡全额支付的账户
==================================================== ===========
服务说明
代码列表名称:fggdgfdgfd
数量:12
购买的一次性发展报告:7 购买的一次性繁荣报告:5
购买的多用途发展报告:5 购买的多用途蓬勃发展报告:5
解决了。现在寻找它背后的理解。
经过多次测试,失败的公式是:失败= X + Y:
失败 = X 字符长度 + 空格。
此外,Microsoft Outlook 20xx 会出现此问题,但 hotmail 或 gmail 不会出现此问题。
例子:
$message .= "一次性使用:发展报告:ddddd\r\n"; ////// 失败 - 长度 41
$message .= "Single-use: DevelopmentaldReportsd:dddddd\r\n"; /// 失败 - 长度 41
$message .= "Single-use:dDevelopmentaldReportsd:dddddd\r\n"; // pass - 长度 41
$message .= "Single-use:DevelopmentaldReportsd:dddddddddddddddddddddddddddddddddddddddddd\r\n"; // 经过