7

我正在尝试使用 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 文件。

4

1 回答 1

5

更新更新问题:

如果您不想在 PHP 代码中包含所有 HTML,那么 yesfile_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

于 2012-07-02T20:36:04.667 回答