使用电子邮件正文发送html

时间:2015-03-27 10:39:11

标签: php html email

我正在尝试插入并发送带有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);
  }

http://pastebin.com/5aQh0Gvz

1 个答案:

答案 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();
相关问题