如何格式化通过php脚本发送的文本的电子邮件正文
您好,我有一个联系我们页面,其中我有一个文本区域用于描述,用户将在那里键入他/她的消息。我希望该邮件是发送在邮件正文,因为它是与所有的格式在它。我从php脚本中得到描述如何格式化通过php脚本发送的文本的电子邮件正文,php,Php,您好,我有一个联系我们页面,其中我有一个文本区域用于描述,用户将在那里键入他/她的消息。我希望该邮件是发送在邮件正文,因为它是与所有的格式在它。我从php脚本中得到描述 $header = "Content-type: text/html\n"; $Description = $_REQUEST["txtDescription"]; mail($To, $Subject, $Description, $header); 我已经定义了$To、$Subject、$header。邮件进展顺利。我希望
$header = "Content-type: text/html\n";
$Description = $_REQUEST["txtDescription"];
mail($To, $Subject, $Description, $header);
我已经定义了$To、$Subject、$header。邮件进展顺利。我希望消息显示在邮件正文中,因为用户在文本区域键入了格式设置(如回车)使用将新行字符转换为
标记
$Description = nl2br($_REQUEST["txtDescription"]);
此外,您还可以执行以下操作以保留多个空格
$Description = str_replace(' ', ' ', $Description);
您可以使用将换行符
\n
转换为
,然后以实际HTML格式发送电子邮件
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
或者更好的方法是使用SwiftMailer或PHPMailer。它们比
mail()
函数好得多,我建议您使用它们从PHP脚本发送电子邮件。如果您想保持格式,只需使用纯文本
而不是文本/html
或将信息包装在pre
标记内:
mail($To, $Subject, "<pre>{$Description}</pre>", $header)
mail($To,$Subject,“{$Description},$header)
当content type设置为
text/html
时,客户端将尝试像浏览器一样呈现它。所以将应用与html中相同的规则:多个空格和回车符将被视为一个。因此,您需要使用暗示(默认情况下)保留格式的标记,例如pre
标记。为此,您应该用CKeditor替换textarea
从这里下载
此链接上的安装和配置详细信息
如果你同意使用TCPDF,那么就使用TCPDF 试试这个例子
那么,将换行符转换为HTML
标记就行了nl2br($Description)
如何将换行符转换为HTML标记?我可以同时保留纯文本和文本/HTML吗?因为我在里面附加了一些html标签。一封邮件可以是多部分的,所以你可以在同一封邮件中发送一个纯文本版本和一个文本/html,客户端将只选择一个版本来阅读。邮件的一部分必须只有一种内容类型。因此,如果您想在邮件中发送html标记并希望文本保持格式,您需要使用
,或者至少使用如下CSS属性:..
(您可以在此处使用span
或任何其他标记)不使用它有什么具体原因吗???@smankudhanuka:什么不起作用?在使用nl2br后尝试回显数据时会发生什么情况?$headers.=“内容类型:text/html;charset=ISO-8859-1\r\n”;不工作。