\ n我的HTML中没有给我一个新行

时间:2016-02-28 03:14:18

标签: php phpmailer

我正在写一个PHPEmailer文件,我将isHTML设置为true,我也有这个来格式化我的输出:

$mail->Body = 
    "Name: " . $_POST['quote_name'] . 
    "\r\n\r\nCompany: " . $_POST['quote_company'] . 
    "\r\n\r\nPhone: " . $_POST['quote_phone'] . 
    "\r\n\r\nAddress: " . $_POST['quote_address'] . 
    "\r\n\r\nCity: " . $_POST['quote_city'] . 
    "\r\n\r\nState: " . $_POST['quote_state'] . 
    "\r\n\r\nZip: " . $_POST['quote_zip'] . 
    "\r\n\r\nInspirational Link: " . $_POST['quote_link1'] . 
    "\r\n\r\nInspirational Link: " . $_POST['quote_link2'] . 
    "\r\n\r\nInspirational Link: " . $_POST['quote_link3'] . 
    "\r\n\r\nInspirational Link: " . $_POST['quote_link4'] . 
    "\r\n\r\nProject Details: " . stripslashes($_POST['quote_details']);

但电子邮件是这样的:

  

姓名:John Doe公司:可口可乐电话:5552345678地址:123 Main St城市:纽约州:NY邮编:17011励志链接:励志链接:鼓舞人心的链接:鼓舞人心的链接:项目详情:示例文本

我想要的是每个字段都在其自己的行

5 个答案:

答案 0 :(得分:3)

当您为PHPMailer将isHTML设置为true时, 会在输出时生效,正如您在评论中所述你的问题。它只设置标志以发送标题部分,表明电子邮件是HTML邮件:Content-type:text/html;,没有别的。

因此,您实际需要做的是将所有\r\n替换为<br>代码,否则您将无法获得换行符。

答案 1 :(得分:2)

HTML中的

\r\n并不意味着什么;您需要<br>代码

编辑:

\r\n对于源HTML的可读性仍然有用,但它不会在HTML输出中产生换行符

答案 2 :(得分:2)

您的电子邮件设置为html。我们改为使用br标签。

"<br>Company: " . $_POST['quote_company'] .

答案 3 :(得分:2)

您可以使用<br/>代替\r\n\r\n,因为HTML已启用。

如果您想使用\r\n\r\n,则需要nl2br()

<?php
    Body =  nl2br("\r\n\r\nCompany: ");
?>

答案 4 :(得分:0)

searchElem.addEventListener("input", function() { var rgx = new RegExp(this.value.replace(/([.^$|*+?()\[\]{}\\-])/g, "\\$1"), 'i'); searchArray.forEach(function(el, idx) { if (transitionEnd) { if (rgx.test(el)) cells[idx].removeAttribute('class'); else cells[idx].className = 'hidden'; var i = -1, cellPosition = 0; while (++i < cellLength) { if (cells[i].className != "hidden") cells[i].style.transform = "translateY(" + (cellPosition++ * cellHeight) + "px)"; } } }); });

你可以尝试here