Php html邮件没有在html中显示

时间:2018-03-28 08:38:03

标签: php email

我正在尝试发送 html电子邮件。邮件工作正常但不是html电子邮件,它只是显示".$message."。数据来自mysql数据库。

我的脚本如下:

$to       = $email;
$subject  = $subject;
$message  = "$message";

$htmlContent = '
<html>
<body>
".$message."
<br /><br />Regards<br /><b>TM</b>
</body>
</html>';
$headers  = 'From: myemail@gmail.com' . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

if(mail($to, $subject, $htmlContent, $headers))
echo "Mail Sent";
else
echo "Problem sending email";

3 个答案:

答案 0 :(得分:0)

你有混合单引号和双引号。串联字符串时只使用一种类型。

$htmlContent = "
<html>
<body>
".$message."
<br /><br />Regards<br /><b>RainbowCTM</b>
</body>
</html>";

答案 1 :(得分:0)

要完成上一个答案,单引号和双引号之间存在巨大差异:

  • 单引号不分析内部字符,因此如果您执行了:<?php $locs='[{"locid":"101","rows": [{"itemcode":"100005","qty":10,"desc":"Potato Chips Banana Chips","locs":"101"},{"itemcode":"100002","qty":20,"desc":"mango","locs":"101"}]}]'; $locsArray = json_decode($locs, true); foreach($locsArray[0]["rows"] as $locRow) { echo $locRow["itemcode"]; } ?> ,则只显示echo '$message'
  • 双引号分析内部字符,因此如果您执行了:$message,则会显示echo "$message"变量的内容。

答案 2 :(得分:0)

Finwe完全正确。 说明:单引号始终采用字符串,而不处理变量或元符号,如\ t或\ n。

另外一个提示:尝试仅使用\n而不是\r\n,因为某些PHP版本中存在产生错误的错误。即使这不是一个问题,它可能会在更新后成为一个(取决于您的PHP版本)。