有人可以帮我解决这个邮件脚本。
我只是想发送一封html电子邮件,部分消息来自用户textarea,它放入\ r \ n。
我似乎无法使用nl2br或任何其他类似的功能。下面的代码不是我正在使用的,但仍会产生错误。
代码:
$to = 'example@gmail.com';
$subject = 'Test Subject';
$message_var_1 = 'test1 \r\n test2 \r\n test3';
$message = nl2br("
<div>
<div>$message_var_1</div>
</div>
");
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'X-Mailer: PHP/'.phpversion() . "\r\n";
mail($to, $subject, $message, $headers);
答案 0 :(得分:5)
$message_var_1 = 'test1 \r\n test2 \r\n test3';
PHP仅在\r
内解析\n
和"
,而不在'
内。因此nl2br
不适用于此。
$message_var_1 = "test1 \r\n test2 \r\n test3";
$message = '<div>
<div>'.nl2br($message_var_1).'</div>
</div>';
这应该有用。
答案 1 :(得分:1)
此字符串包含嵌入的换行符,因此您最终会得到一些不需要的<br/>
。
$message = nl2br("
<div>
<div>$message_var_1</div>
</div>
");
你可以:
$message = "<div>" . nl2br($message_var_1) . "</div>";
或者,使用<pre>
代码更容易:
$message = "<pre>$message_var_1</pre>";
答案 2 :(得分:-1)
另一种方法是使用HEREDOC。
$message = <<<OUTPUT
<div> some text
<div> some more text </div>
</div>
OUTPUT;
$message = nl2br($message);
heredoc here
的手动链接