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


Sending HTML email using PHP: including the HTML file

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

我的代码 (PHP):

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

我的电子邮件文件(电子邮件.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文件。

更新问题:

如果您不想在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