2012-03-28 44 views
2

您可能以前遇到過此錯誤。我似乎無法修復它。 Gmail似乎忽略了我的HTML電子郵件,只是顯示了代碼。 所有其他客戶端(或我所知的所有)正在正確顯示內容。Gmail忽略了我的HTML電子郵件

這裏是我的代碼(某些事情發生了變化,以隱藏名字)

 $to = "$EmailAddress"; 
    $subject = "My subject!"; 
    $headers = "From: [email protected]\r\n" . 
    "X-Mailer: php"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
    $message = '<html><body>'; 
    $message .= '<center><img width="300px" src="http://www.mydomain.co.uk/images/mylogo.png"/><br />'; 
    $message .= '<br /><br />'; 
    $message .= '<h2>Hello '.$UserName.',</h2>'; 
    $message .= '<b>Thanks for joining!</b><br /><br />'; 
    $message .= 'Please find your login details below.'; 
    $message .= '_____________________________________<br /><br />'; 
    $message .= 'Username: '.$UserName.'<br/> 
        Password: '.$Password.'<br /> 
        <br />'; 
    $message .= '_____________________________________<br /><br />'; 
    $message .= 'Thanks,<br/>My company.<br/>'; 
    $message .= '<br/><a target="_new" href="http://www.mydomain.co.uk"/>www.mydomain.co.uk</a>'; 
    $message .= '</center>'; 
    $message .= 'my company &copy; 2012'; 
    $message .= '</html></body>'; 

    $success = mail($to,$subject,$headers,$message); 

我的問題是,有沒有辦法要麼提供的電子郵件的替代純文字版本應該電子郵件客戶端不能夠閱讀此代碼,或者是否需要添加一些內容才能讓Gmail瞭解它?

我很抱歉,如果這是重複的,但我似乎無法在此處找到此問題。 在此先感謝。

+0

爲什麼不使用類來構建HTML電子郵件而不是手動完成所有的工作。這尤其會帶來你可以輕鬆添加純文本版本的優點(只有html的電子郵件非常令人討厭!)。 – ThiefMaster 2012-03-28 13:44:44

+0

僅含HTML的電子郵件很容易標記爲「可能是垃圾郵件」(我的電子郵件服務也是這樣做的)。 – Quentin 2012-03-28 13:46:00

+2

嘗試phpMailer:http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/ – 2012-03-28 13:47:09

回答

7

你在你的代碼中有一些錯字,我不知道其他客戶如何正確顯示內容。我努力工作並取得成功,希望也能爲你工作,試試這個;

$to = "$EmailAddress"; 
$subject = "My subject!"; 
$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$message = '<html><body>'; 
$message .= '<center><img width="300px" src="http://www.mydomain.co.uk/images/mylogo.png"/><br />'; 
$message .= '<br /><br />'; 
$message .= '<h2>Hello '.$UserName.',</h2>'; 
$message .= '<b>Thanks for joining!</b><br /><br />'; 
$message .= 'Please find your login details below.'; 
$message .= '_____________________________________<br /><br />'; 
$message .= 'Username: '.$UserName.'<br/> 
Password: '.$Password.'<br /> 
<br />'; 
$message .= '_____________________________________<br /><br />'; 
$message .= 'Thanks,<br/>My company.<br/>'; 
$message .= '<br/><a target="_new" href="http://www.mydomain.co.uk"/>www.mydomain.co.uk</a>'; 
$message .= '</center>'; 
$message .= 'my company &copy; 2012'; 
$message .= '</body></html>'; 

$success = mail($to,$subject,$message,$headers); 

這是什麼ü尋找

+0

工程就像一個魅力。非常感謝。 – 2012-03-29 10:40:14

+0

我很高興爲你工作,祝你有美好的一天! – 2012-03-29 10:55:32

+0

不確定,但看起來如此,但是當作爲收件人處理gmail時,我們無法在不影響郵件傳遞的情況下更改標題。我不得不評論'$ mail-> ClearCustomHeaders();'和所有自定義標題'$ mail-> AddCustomHeader();'現在gmail正在接收電子郵件就好了 – 2015-10-04 22:20:37

-1

我不認爲你正試圖在這裏是什麼標準。電子郵件通常是純文本/文本,而不是text/html。 Theres選項可以將電子郵件作爲mime-multipart消息發送,但是,如果沒有text/html支持,那麼瀏覽器將擁有文本/純文本版本。你應該使用一個類來保護自己免受MIME的實現細節。

Mi註釋適用於高級PHP用戶。 Beaginer可以手動完成任務,他們沒有經歷過什麼事情會以這種方式破壞。因此,這裏頂尖的評論對足球隊員來說已經足夠了。 Professionales更適合使用創建正確的MIME類型多部分文件的類。

-1

嘗試使用

Content-type:html;

我用它來解決我的應用程序中的問題。