2014-11-17 18 views
1

我想發送HTML電子郵件。當我發送沒有圖像或來自其他域的圖像的電子郵件時,它工作正常。但是當我從我的主機放置圖像時,它根本不發送電子郵件。PHP郵件()不發送電子郵件與特定主機的圖像

我曾嘗試使用來自我的域的圖像從另一個主機發送電子郵件,它似乎正在工作。

有沒有人有類似的問題,我該如何解決它?

編輯:這裏是函數,我使用。

function send_html_email($email = '', $template, $subject = '', $data = array()) { 

    /* email header */ 
    ob_start(); 
    require TEMPLATEPATH . '/email-templates/header.php'; 
    $header = ob_get_contents(); 
    ob_clean(); 

    /* email content */ 
    ob_start(); 
    require TEMPLATEPATH . "/email-templates/{$template}.php"; 
    $content = ob_get_contents(); 
    ob_clean(); 

    /* email footer */ 
    ob_start(); 
    require TEMPLATEPATH . '/email-templates/footer.php'; 
    $footer = ob_get_contents(); 
    ob_clean(); 

    $message = $header . $content . $footer; 

    $headers[] = 'Content-type: text/html';  

    return wp_mail($email, $subject, $message, $headers); 

} 

我試圖與wp_mail()mail()功能,兩者都返回true

+0

某些代碼可能會派上用場 –

+0

您分配的郵件的內容類型是什麼 – Tejesh

+0

您嘗試查看服務器上的郵件日誌嗎? – Noy

回答

2

不要重新發明輪子!

發送高級郵件,將它們硬編碼爲HTML郵件()函數是一項繁瑣的任務。

相反,您應該使用類似phpMailer或使用PEAR包PEAR::Mail_Mime

這是因爲如果您自己編寫腳本,有很多缺陷可以繞過。

+0

但是有什麼不同?它發送電子郵件與其他主機的圖像。當我打算將電子郵件網站徽標或用戶的頭像放入時,它不起作用。 –

+0

html郵件的格式與普通(明文)郵件不同。準確地說明這是如何工作的並不適合這種格式。您應該查看MIME多部分電子郵件的工作方式。也許這個:https://www.inkling.com/read/programming-python-mark-lutz-4th/chapter-13/email-parsing-and-composing會指出你在正確的方向 –