2012-07-02 125 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