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


how to format email body for the text send through php script

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

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

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

您可以使用

nl2br()将换行符'n转换为<br/>,然后以实际的HTML格式发送电子邮件。

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

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

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

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

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

$Description = str_replace('  ', ' &nbsp;', $Description);

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

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

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

Ck 编辑器

如果你喜欢使用TCPDF,那就使用TCPDF

试试这个例子

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

如果要继续格式化,只需使用plain/text而不是text/html

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

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

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