2012-08-01 147 views
5

我有以下代碼:PHP的郵件()和Outlook

$subject = "Test Email"; 
    $from = "[email protected]"; 
    ini_set("sendmail_from", $from); 
$message = "<html><body bgcolor=\"#DCEEFC\"> 
       Hello<br><br> 
       This is a <b>test</b> email. 
       <br><br><hr> 
       <a href=\"\">Click Here</a>  
       <br><br><hr> 
       <br><br> 
       Thank you for your time,<br><br> 
      </body></html>"; 

    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html\r\n"; 
    $headers .= "From: " . $from . "\r\n"; 
    mail($mail, $subject, $message, $headers); 

然而,當我發送電子郵件給自己,我在Outlook中看到的所有代碼。如果我將它發送給其他人,他們會看到HTML。如果我將它發送到我的Hotmail,他們會看到HTML。

這是我的前景(2007年)的問題,如果是這樣,它是什麼,或者我可以在電子郵件中做些什麼來保證顯示正確?

請幫忙!

+0

如果您在Hotmail和Outlook中都看到HTML標記,那麼代碼存在問題,如果您只在Outlook中看到HTML標記,那麼很可能是某些Outlook設置錯誤。 – 2012-08-01 11:10:39

+0

你有什麼想法嗎? – Chud37 2012-08-01 11:11:09

+0

你的代碼有哪些設置或者什麼問題? – 2012-08-01 11:12:49

回答

6

我發現這個問題:

HTML Email not displaying correctly for Godaddy web based mail

更改:

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html\r\n"; 
$headers .= "From: " . $from . "\r\n"; 

到:

$headers = "MIME-Version: 1.0" . PHP_EOL; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1" . PHP_EOL; 
$headers .= "From: Site<$from>" . PHP_EOL; 

感謝您的所有幫助傢伙! :)

1

聽起來像是你有你的Outlook中設置顯示在純文本郵件,無論他們是在發送的格式。

進入您的Outlook首選項,並改變它來查看的格式,他們在到達的消息。

+0

其他電子郵件在HTML中讀取正常嗎?我似乎無法在首選項中找到該設置。 – Chud37 2012-08-01 11:10:51

1

嘗試重新排列標題。我記得有一段時間以前同樣的問題,它的工作我用下面的標題後:

$headers = "From: " .$from. "\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n"; 
    $headers .= "Content-Transfer-Encoding: 8bit\r\n"; 

我會建議雖然使用ready-to-go php mailer class - 它使生活變得更輕鬆。