我使用其发送回所包含的变量$主体内的消息的邮件功能。我想将消息发送给自己用粗体某些单词和一些休息的标签。

下面是我的代码(定界符语法):

$body = <<<CTS
<h1><b>Order for $name on datevariable</b></h1><br /><br />

<b><u>Administrative Details</u></b><br />
<b>Employee ID:</b> $id<br />
<b>Cost Center:</b> $cost_center<br />
<b>Approved By:</b> $approved_by<br />
<b>Delivery Bldg:</b> $delivery_bldg<br />
<b>Delivery Contact Email:</b> $delivery_contact<br />
<b>Ext:</b> $del_contact_ext<br />
CTS;

由于某些原因,当我收到的电子邮件,它看起来像这样:

<h1><b>Order for James Important on datevariable</b></h1><br /><br />
<b><u>Administrative Details</u></b><br />
<b>Employee ID:</b> 213123<br />
<b>Cost Center:</b> 132123<br />
<b>Approved By:</b> Chris Seckla<br />
<b>Delivery Bldg:</b> 6<br />
<b>Delivery Contact Email:</b> test@email.com<br />
<b>Ext:</b> 56<br />

它填补了变量值,但由于某种原因,忽略html标签。有人可以告诉我怎么解决这个问题?

另外,它忽略了休息代码,且只有把休息,当我离开的线路空白。在此任何想法?

有帮助吗?

解决方案

如果这是一封电子邮件,你必须设置MIME类型为text / html,而不是text / plain的。否则,你的电子邮件阅读器将解释该消息以纯文本格式,并忽略所有的HTML标记。

举例来说,可以说要调用这样的mail功能:

mail( $to, $subject, $message, $headers )

$headers,你需要(当然调整您的特定情况下,)沿着这些路线的东西:

$headers = "From: webmaster@example.com\r\n";
$headers .= "Reply-To: webmaster@example.com\r\n";
$headers .= "Content-Type: text/html";

如果您要发送纯文本和HTML电子邮件(所以非HTML的读者可以看到一个干净版本的电子邮件没有所有这些标签),我建议考虑看看的的教程多部分邮件的更详细的解释。

其他提示

您必须设置从PHP发送时的电子邮件使用HTML格式来显示的附加报头:

的Content-Type:text / html的;字符集=任何

请确保您发送的声明是HTML ...

示例:

mail('email@domain.com', 'Subject',
'<html><body><b>Hello</b></body></html>',
"To: The Receiver <recipient@domain.com>\n" .
"From: The Sender <email@domain.com>\n" .
"MIME-Version: 1.0\n" .
"Content-type: text/html; charset=iso-8859-1"); 

如果你想用PHP发送邮件,我会建议你使用PEAR Mail_Mime包,而不是简单的邮件功能

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top