我正在编写一个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.
你可以在这里尝试一下。