2012-07-02 100 views
7

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

我的代码(PHP):

$email_text = file_get_contents('email.html'); 
$headers = "From:[email protected]ail.com"; 

mail('[email protected]', '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文件。

+0

IM并不清楚实际的问题是什么。 – 2012-07-02 20:36:34

+0

@Dagon:编辑我的问题。我希望现在很清楚。上面的 –

+1

应该可以正常工作,你说它不?如果是这样,它以什么方式不起作用? – 2012-07-02 20:43:09

回答

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

+1

谢谢。但我不问如何发送HTML电子邮件。我在问如何从HTML文件中获取HTML电子邮件的内容。编辑我的问题。 –

+1

@iSumitG那么你不应该接受这个答案。我发现这个http://stackoverflow.com/questions/259622/how-to-attach-html-file-to-email-using-content-taken-from-db-in-php可能会帮助别人 – sanchy