2011-08-11 58 views
1

我正在使用以下PHP代碼發送電子郵件。我已經在Outlook和其他地方進行了測試,一切都正確無誤。但是,如果我發送電子郵件到使用Godaddy的基於Web的電子郵件瀏覽器的人它有2個問題:HTML郵件無法正確顯示爲Godaddy基於Web的郵件

  • 的電子郵件地址中不顯示
  • 而不是顯示的HTML郵件,它顯示了HTML代碼

這已通過多臺機器和瀏覽器上的多個基於godaddy的帳戶進行驗證。

這裏是我用來發送電子郵件的代碼:

//build and send the email  
    $to = $email; 
    $subject = 'Confirm your subscription'; 
    $message =("<html>\r\n"); 
    $message .=("<head>\r\n"); 
    $message .=("<title>Confirm</title>\r\n"); 
    $message .=("</head>\r\n"); 
    $message .=("<body>\r\n"); 
    $message .=("<h2>Thank You for registering</h2>\r\n"); 
    $message .=("<p>To complete your registration, please click the link below.</p>\r\n"); 
    $message .=(" <p><a href=\"http://www.site.com/confirmation.php?confirm=$visitor_hash\">Click here to confirm your interest.</a></p>\r\n"); 
    $message .=("</body>\r\n"); 
    $message .=("</html>\r\n"); 

    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
    $headers .= "From: Site<[email protected]>\r\n"; 
    mail($to, $subject, $message, $headers); 

有什麼想法?

回答

8

經過大量搜索,發佈和調整,我找到了解決方案。我在用戶註釋中發現了PHP Mail函數的頁面。

我改變了這3條線路從:

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$headers .= "From: Site<[email protected]>\r\n"; 

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

這解決了這一問題。

謝謝, 克里斯

0

構建正確的HTML電子郵件實際上是一個MIME電子郵件,您並未構建它。一個MIME版本頭是不夠的。嘗試使用SwiftmailerPHPMailer,這兩者都可讓您毫不費力地構建多部分電子郵件

+0

我沒有安裝此服務器上的任何選擇,我必須使用什麼htere。有關如何正確格式化併發送此電子郵件的想法? –

相關問題