我正在尝试插入并发送带有html正文的电子邮件,但收到的电子邮件是纯HTML文本。我已经添加了正确的标题,但似乎他们没有帮助我(或者至少我认为是正确的)。
这是代码
if(isset($_POST['email'])) {
$email_to = "";
$email_subject = "";
$firstname = $_POST['name']; // required
$email = $_POST['email']; // required
$message = $_POST['message']; // not required
$phone = $_POST['phone'];
$captcha = $_POST['captcha'];
$subject = $_POST['subject']; // required
$email_message = "New email:\n\n";
$email_message .= '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="top" bgcolor="#838383" style="background-color:#838383;"><br>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top"><img src="images/top.png" width="600" height="177" style="display:block;"></td>
</tr>
<tr>
<td align="center" valign="top" bgcolor="#d3be6c" style="background-color:#d3be6c; font-family:Arial, Helvetica, sans-serif; font-size:13px; color:#000000; padding:0px 15px 10px 15px;">
<div style="font-size:24px; color:#555100;"><br>
'.$firstname.'
</div><br>
<div>'.$subject.'</div>
<div>
'.$message.'
'.$email.'
'.$phone.'
</div></td>
</tr>
<tr>
<td align="left" valign="top"><img src="images/bot.png" width="600" height="18" style="display:block;"></td>
</tr>
</table>
<br>
<br></td>
</tr>
</table>
</body>
</html>';
// create email headers
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers = 'From: '.$email."\r\n".
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
}
答案 0 :(得分:2)
您在设置$headers
标题时重置了From:
:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: '.$email."\r\n". // << note the dot before = that wasn't here before making `$headers` to be resetted
'Reply-To: '.$email."\r\n" .
'X-Mailer: PHP/' . phpversion();