如何格式化电子邮件正文通过PHP脚本发送文本

时间:2013-09-13 09:40:12

标签: php

您好我有一个联系我们页面,其中我有一个textarea描述,用户将键入他/她的消息。我希望该邮件在邮件正文中发送,因为它包含所有格式。我从php脚本

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

我已经定义了$ To,$ Subject,$ header。邮件很完美。我希望消息显示在邮件正文中,因为用户在textarea中键入了格式(如输入)

5 个答案:

答案 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('  ', ' &nbsp;', $Description);

答案 2 :(得分:1)

为此,您应该用CKeditor替换textarea

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

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

Ck Editor

答案 3 :(得分:0)

如果您想保留格式,请使用plain/text代替text/html

或者将邮件包装在pre标记内:

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

text/html上设置内容类型时,客户端会尝试像浏览器那样呈现它。因此将应用与html中相同的规则:多个空格和回车将被视为一个。因此,您需要使用隐含(默认情况下)格式的标记来保留格式,例如pre标记。

答案 4 :(得分:0)

如果您使用TCPDF,请使用TCPDF

试试这个例子

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