我一直在尝试在邮件正文中创建换行符,但它无效。正文中的所有文字都在一行中。
<?php
if ($_POST["email"]<>'') {
$ToEmail = 'demo@localhost.com';
$EmailSubject = 'Site contact form';
$header = "MIME-Version: 1.0" . "\r\n";
$header .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$header .= "From: ".$_POST["email"]."\r\n";
$header .= "Reply-To: ".$_POST["email"]."\r\n";
$message = "Name: ".$_POST["name"]."\r\n";
$message .= "Email: ".$_POST["email"]."\r\n";
$message .= "Comment: ".nl2br($_POST["comment"])."";
mail($ToEmail, $EmailSubject, $message, $header) or die ("Failure");
?>
Your message was sent
<?php
} else {
?>
Sorry message was not sent
<?php
};
?>
答案 0 :(得分:1)
更改这些行:
$message = "Name: ".$_POST["name"]."\r\n";
$message .= "Email: ".$_POST["email"]."\r\n";
$message .= "Comment: ".nl2br($_POST["comment"])."";
对此:
$message = "Name: ".$_POST["name"]."<br />";
$message .= "Email: ".$_POST["email"]."<br />";
$message .= "Comment: ".nl2br($_POST["comment"])."";
您对nl2br
有正确的想法,但您的消息也是“名称:”和“电子邮件:”部分 - 这些行也需要是HTML行,因为您要发送HTML电子邮件。
作为旁注,你应该真正清理你的输入。只是将$_POST
值转储到电子邮件中是非常危险的;它离开了你EXTREMELY vulnerable to attacks。
答案 1 :(得分:0)
\ n不会在这里工作
您要发布到HTML页面
您可以使用<br />
答案 2 :(得分:0)
而不是\r\n
使用<br />
因为\r\n
无法转换为html标记。