1
這裏是我一直在努力的一些代碼,基本上我需要設置一個自動電子郵件發送給用戶後,他們填寫表單,目前它正在做,但HTML不顯示,因爲它應該在電子郵件客戶端內。PHP郵件包含HTML不能正確顯示
我檢查了Gmail,Outlook和Mac郵件,但都沒有正確顯示HTML。
下面是代碼
<?php
session_start();
$_SESSION['name'] = $_POST['name'];
$name = $_SESSION['name'];
$email_1 = $_POST['email_1'];
$email_2 = $_POST['email_2'];
$email_3 = $_POST['email_3'];
$email_4 = $_POST['email_4'];
$id_num = $_POST['id_num'];
$tel = $_POST['tel'];
$email = $_POST['email'];
//sets the current date
$curDate = date("Y-m-d");
// Example
require_once("mailclass/htmlMimeMail.php");
$mail = new htmlMimeMail();
$mail->setSubject("Your submission to MyWebsite!");
$mail->setFrom("MyWebsite <[email protected]>");
$mail->setFrom("MyWebsite <[email protected]>");
$email_address = $email_1 . "," . $email_2 . "," . $email_3 ."," . $email_4 ;
$mail->setBcc($email_address);
$day = "
<body style="'background: #000000; color: #FFFFFF;'">
<div style="'background-image: url(http://www.website.com/images/mailerbg.jpg); width: 900px; height: 839px; margin: 0 auto;'">
<div style="'width: 620px; height: 280px; position: relative; top: 155px; left: 25px;'">
<h1><br>your friend $name<br><br><br></h1>
</div>
</div>
</body>";
$mail->setHTML($day);
$result = $mail->send(array());
?>
的代碼是相當混亂,從我與它胡鬧了這麼多,但一旦消息的到達,因爲它應該在電子郵件客戶端基本沒有HTML的顯示出來它是目的地,我怎樣才能讓它在郵件客戶端內部顯示爲一個合適的HTML頁面?
我假設我的轉義沒有正確完成,這就是爲什麼沒有顯示它應該如此?
Thanx提前!
不錯的anwser,但請記住,使用pekka的代碼時,你必須使用單引號的decleration($ day ='<! - HTML_CODE - >';) – Flatlin3 2010-03-29 21:07:03
@Tim好眼睛!我想知道OP的代碼如何工作,所有嵌套的雙引號? – 2010-03-29 21:13:44
這也是我跳出來的。只需要添加一下,如果你想逃避這些雙引號,只需在引號之前加一個反斜槓,就像這樣:#000000; color:#FFFFFF;'' 這樣,當你輸入雙引號時,你不會過早地關閉你的HTML主體字符串。或者,像Tim說的那樣,你可以把整個字符串括在單引號中,並使用雙引號,就像普通的引號一樣,反之亦然。 – 2010-03-29 22:23:45