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

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文件。

我不清楚实际问题是什么。 - user557846
@Dagon:我编辑了我的问题。希望现在清楚了。 - sumit
1
以上应该可以正常工作,您是在说它不能正常工作吗?如果是的话,它出了什么问题? - user557846
@Dagon 已经可以正常工作了。只是在寻找更好的替代方案。 - sumit
更好在哪里?上面有什么问题吗? - user557846
1个回答

5

更新问题的解答:

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


1
谢谢。但我不是在问如何发送HTML电子邮件。我正在询问如何从HTML文件中获取HTML电子邮件的内容。我编辑了我的问题。 - sumit
1
@iSumitG 那么你就不应该接受这个答案。我发现这个链接 http://stackoverflow.com/questions/259622/how-to-attach-html-file-to-email-using-content-taken-from-db-in-php 或许可以帮助其他人。 - bysanchy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接