我正在尝试将一些标记添加到由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
答案 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);