没有在我的 HTML 中给我一个新行


is not giving me a new line in my HTML

我正在编写一个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']);

但是电子邮件是这样发出的:

姓名:约翰·多伊 公司: 可口可乐 电话: 5552345678 地址: 123主街 城市: 纽约州: 纽约 邮编: 17011 励志链接

: 鼓舞人心的链接: 鼓舞人心的链接: 鼓舞人心的链接: 项目详细信息: 示例文本

我想要的是这些字段中的每一个都在自己的行中

当您为 PHPMailer 设置isHTML true时,它不会在输出时生效,正如您在问题注释中所述。它只设置标志以发送一个标题部分,指示电子邮件是HTML电子邮件:Content-type:text/html;,没有别的。

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

HTML

中的'r'n没有任何意义;你需要一个<br>标签

编辑:

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

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

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

您可以使用<br/>而不是'r'n'r'n,因为 HTML 已启用。

如果要使用 'r'n'r'n ,则需要nl2br()

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

</br> is used to insert line breaks in HTML.

你可以在这里尝试一下。