html php电子邮件中的换行符

时间:2013-09-18 10:45:36

标签: php html-email

我使用下面的代码使用php发送textarea内容作为电子邮件

<?php
$to = $_POST['emailbox'] ;
$message1 = $_REQUEST['output_textarea'];
$subject = 'script';
$message = "
<html>
<body>
<table bgcolor='lightcyan'>
<p>heading</p>
$message1;
</table>
</body>
</html>
";
$headers  = "From: admin@domain.com\r\n";
$headers .= "Reply-To: acr@domain.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to, $subject, $message, $headers);
?>  

但电子邮件忽略了textarea中的所有换行符。如何在文本区域中保留换行符?

2 个答案:

答案 0 :(得分:1)

你必须像这样使用它:

<?php
$message1 = $_REQUEST['output_textarea'];
$message1 = nl2br($message1);

?>

答案 1 :(得分:1)

首先,这里不需要分号:

$message1;

当您使用html作为电子邮件时,必须使用<br/>标记来打破行。

使用\n替换<br/>的最佳方法是使用nl2br() PHP函数。

在您的代码中替换:

$message1 = $_REQUEST['output_textarea'];

使用:

$message1 = nl2br($_REQUEST['output_textarea']);