您好我有一个联系我们页面,其中我有一个textarea描述,用户将键入他/她的消息。我希望该邮件在邮件正文中发送,因为它包含所有格式。我从php脚本
获取描述$header = "Content-type: text/html\n";
$Description = $_REQUEST["txtDescription"];
mail($To, $Subject, $Description, $header);
我已经定义了$ To,$ Subject,$ header。邮件很完美。我希望消息显示在邮件正文中,因为用户在textarea中键入了格式(如输入)
答案 0 :(得分:2)
您可以使用nl2br()
将换行符\n
转换为<br/>
,然后以实际 HTML格式发送电子邮件。
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
或者更好的是,使用SwiftMailer或PHPMailer。它们比mail()
函数更好,我建议使用它们从PHP脚本发送电子邮件。
答案 1 :(得分:1)
使用 nl2br() 将新的换行符转换为<br>
代码。
$Description = nl2br($_REQUEST["txtDescription"]);
此外,您还可以执行以下操作以保留多个空格 -
$Description = str_replace(' ', ' ', $Description);
答案 2 :(得分:1)
答案 3 :(得分:0)
如果您想保留格式,请使用plain/text
代替text/html
或者将邮件包装在pre
标记内:
mail($To, $Subject, "<pre>{$Description}</pre>", $header)
在text/html
上设置内容类型时,客户端会尝试像浏览器那样呈现它。因此将应用与html中相同的规则:多个空格和回车将被视为一个。因此,您需要使用隐含(默认情况下)格式的标记来保留格式,例如pre
标记。
答案 4 :(得分:0)