2013-05-09 55 views
0

我正在通过下面的php代码发送一封电子邮件,该代码将电子邮件模板发送到用户电子邮件地址。然而,电子邮件发送的所有HTML标签仍然可见并且不起作用。使用PHP邮件格式化HTML()

$fh = fopen('templates/customer.eml','r'); 

     $emailContents = fread($fh, filesize('templates/customer.eml')); 
     $emailContents = str_replace(":name:", $person->first . " " . $person->last, $emailContents); 
     $emailContents = str_replace(":meeting_name:", $meeting->name, $emailContents); 
     $emailContents = str_replace(":chair:", $chair->first . " " . $chair->last, $emailContents); 

     fclose($fh); 

     $header = "FROM: [email protected]\r\n"; 
     $header = "MIME-Version: 1.0\r\n"; 
     $header.="Content-type: text/html; charset: utf8\r\n"; 
     mail($person->email , "Meeting Request", $emailContents, "FROM: [email protected]"); 

而下面是我使用的内容的电子邮件模板文件:

<html> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    </head> 
    <body> 
     <p> 
      Dear :name:,<br /> 
      You have been invited to <em>:meeting_name:</em> chaired by :chair:. 
     </p> 

     <p> 
      Main text of the email will go here<sup>*</sup>. 
     </p> 
     <p> 
      Thankfully 
     </p> 
     <p> 
      User 
     </p> 
    </body> 
</html> 
+0

你不读$头变量。你只是追加到它。 – brunoais 2013-05-09 10:27:24

回答

1

你不及格头到邮件功能。尝试:

$header = "FROM: [email protected]\r\n"; 
$header .= "MIME-Version: 1.0\r\n"; 
$header .="Content-type: text/html; charset: utf8\r\n"; 
mail($person->email , "Meeting Request", $emailContents, $header); 

尝试这些头,而不是

$header = 'MIME-Version: 1.0' . "\r\n"; 
$header .= 'Content-type: text/html; charset=utf8' . "\r\n"; 
$header .= 'From: [email protected]' . "\r\n"; 
mail($person->email , "Meeting Request", $emailContents, $header); 
+0

对不起,我的错误。我已将$ header更新为邮件功能。但是,我现在不收到和一封电子邮件? – Krisso123 2013-05-09 10:23:18

+0

感谢您发布该代码,它的工作:)真的很感谢您的帮助。谢谢 – Krisso123 2013-05-09 10:26:40