2010-01-11 52 views
1

PHP HTML郵件呈現標籤我使用的PHP網站這個例子發送HTML電子郵件,但是當我收到由腳本發送郵件它呈現標籤在客戶端(Outlook)中在Outlook

<?php 
// multiple recipients 
$to = '[email protected]' . ', '; // note the comma 
$to .= '[email protected]'; 

// subject 
$subject = 'Birthday Reminders for August'; 

// message 
$message = ' 
<html> 
<head> 
<title>Birthday Reminders for August</title> 
</head> 
<body> 
<p>Here are the birthdays upcoming in August!</p> 
<table> 
<tr> 
    <th>Person</th><th>Day</th><th>Month</th><th>Year</th> 
</tr> 
<tr> 
    <td>Joe</td><td>3rd</td><td>August</td><td>1970</td> 
</tr> 
<tr> 
    <td>Sally</td><td>17th</td><td>August</td><td>1973</td> 
</tr> 
</table> 
</body> 
</html> 
'; 

// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n"; 
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n"; 
$headers .= 'Cc: [email protected]' . "\r\n"; 
$headers .= 'Bcc: [email protected]' . "\r\n"; 

// Mail it 
mail($to, $subject, $message, $headers); 
?> 

我的客戶端設置爲接收HTML郵件 - 所以我不知道發生了什麼。任何指針?

回答

3

我不知道如何修復您現有的腳本,但發送HTML電子郵件時,我總是推薦使用像PHPMailer這樣的現成課程:它提供安全和清晰的多部分郵件處理,多個收件人,甚至文件附件。

+0

我第二個這樣的答案。郵寄非常複雜,使用現有的課程總是一個好主意。就我個人而言,我最近使用過Zend_Mail,但最終你會找到自己最喜歡的。 –

1

您的代碼適用於我。如果Outlook具有查看消息的原始源代碼的功能,則應仔細檢查並查看是否有錯誤。

有時,如果您碰巧混合使用Windows和Unix樣式的換行符,電子郵件客戶端會忽略某些標頭。

另外:

  • 不明確添加頭。 PHP會爲你做。

  • 刪除$ headers中的前導回車符。