使用PHP发送HTML电子邮件:包括HTML文件

时间:2012-07-02 20:28:15

标签: php html email

我正在尝试使用PHP发送电子邮件。该电子邮件是一封包含数百行HTML代码的HTML电子邮件(文件 email.html )。我不想在PHP中编写整个HTML代码。我该怎么做?我的下方方法是否正确?有更好的选择吗?

我的代码(PHP):

$email_text = file_get_contents('email.html');
$headers = "From:def@gmail.com";

mail('abc@gmail.com', 'Hello', $email_text, $headers);

我的电子邮件文件(email.html):

<html>
     <body>
          <a href="http://google.com">Hello</a>
     </body>
</html>

我的问题:我想发送一封显示HTML内容的HTML电子邮件。 HTML内容取自名为email.html的文件。

注1:为了清晰起见,我简化了上面的代码。原始代码具有正确显示HTML代码的标题。原始的HTML文件也有数百种线条和CSS样式。我只提到了几行简化。

注2: 使用PHP发送电子邮件有很多重复但我找不到如何在一行PHP代码中包含一个大的HTML文件。

1 个答案:

答案 0 :(得分:4)

更新更新的问题:

如果您不想在PHP代码中包含所有HTML,那么是file_get_contents()是一个很好的选择。


您需要在标头中包含内容类型和MIME版本。这也是字符集UTF-8。

$headers = "From: $from <$from_email>\r\n". 
           "MIME-Version: 1.0" . "\r\n" . 
           "Content-type: text/html; charset=UTF-8" . "\r\n";

http://php.net/manual/en/function.mail.php