4

您好,我有一个联系我们页面,其中我有一个用于描述的文本区域,用户将在那里输入他/她的消息。我希望该消息以邮件正文中的所有格式发送。我从 php 脚本中得到描述

$header = "Content-type: text/html\n";
$Description = $_REQUEST["txtDescription"];
mail($To, $Subject, $Description, $header);

我已经定义了 $To、$Subject、$header。邮件进展顺利。我希望消息显示在邮件正文中,因为用户在 textarea 中输入了格式(如回车)

4

5 回答 5

2

您可以将换行符转换\n<br/>使用nl2br(),然后以实际HTML 格式发送电子邮件。

$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

或者更好的是,使用 SwiftMailer 或 PHPMailer。它们比mail()函数好得多,我建议使用它们从您的 PHP 脚本发送电子邮件。

于 2013-09-13T09:42:53.757 回答
1

使用nl2br()将换行符转换为<br>标记。

$Description = nl2br($_REQUEST["txtDescription"]);

此外,您还可以执行以下操作来保留多个空格-

$Description = str_replace('  ', ' &nbsp;', $Description);
于 2013-09-13T09:42:51.863 回答
0

如果要保持格式,只需使用plain/text而不是text/html

或者将消息包装在pre标签内:

mail($To, $Subject, "<pre>{$Description}</pre>", $header)

在客户端上设置内容类型后text/html,将尝试像浏览器一样呈现它。因此将应用与 html 中相同的规则:多个空格和回车将被视为一个。所以你需要使用暗示(默认)的标签来保持格式,比如pre标签。

于 2013-09-13T09:43:10.160 回答
0

为此,您应该将 textarea 替换为 CKeditor

从这里下载 http://ckeditor.com/download

此链接上的安装和配置详细信息

CK编辑器

于 2013-09-13T09:45:19.810 回答
0

如果您同意使用 TCPDF,请使用 TCPDF

试试这个例子

http://www.tcpdf.org/examples/example_001.phps

于 2013-09-13T09:46:29.080 回答