在PHP电子邮件脚本中使用HTML

时间:2015-08-11 05:41:08

标签: php html email

我正在尝试将一些标记添加到由PHP脚本生成的电子邮件中,但它似乎不会解析标记,因为它们在电子邮件中随内容一起显示。任何帮助将非常感激。谢谢!

脚本:

<?php

$name = Trim(stripslashes($_POST['name'])); 
$email = Trim(stripslashes($_POST['email'])); 
$message = Trim(stripslashes($_POST['message']));
$emailFrom = $email;
$emailTo = "my@email.com";
$subject = "Subject Line";

// Prepare email body text
$body = "<strong>Name:</strong> $name <br /> Email: $email <br /> Message: $message";

$headers .= 'MIME-Version: 1.0' . "\r\n";  
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Send email 
$success = mail($emailTo, $subject, $body, "From: $name <$emailFrom>");

// Redirect to success or error pages
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=thankyou.html\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}

?>

输出:

<strong>Name:</strong> My Name <br /> Email: my@email.com <br /> Message: TEST

2 个答案:

答案 0 :(得分:3)

在您的代码中,您不能使用$ header

更改这些行:

$headers  = "";  
$headers .= 'MIME-Version: 1.0' . "\r\n";  
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: $name <$emailFrom>" . "\r\n";

// Send email 
$success = mail($emailTo, $subject, $body, $headers);

如果它还不够工作,我建议你使用像phpmailer这样的开源邮件:http://phpmailer.worxware.com/index.php?pg=examples

答案 1 :(得分:1)

您没有将$header传递给您的邮件功能。 请将"From: $name <$emailFrom>"添加到$header,然后将其传递给邮件功能:

$headers .= 'MIME-Version: 1.0' . "\r\n";  
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: $name <$emailFrom>" . "\r\n";

// Send email 
$success = mail($emailTo, $subject, $body, $header);