2017-08-28 28 views
0

我試過兩個不同的電子郵件客戶端試過google & stackoverflow回答。但未能解決問題。我也測試了本地圖像路徑,這非常好。PHPmailer AddEmbeddedImage嵌入失敗圖片

這裏是編碼部分:

$mail->addEmbeddedImage('../img/abc-company- 
    logo.png','logo','abc-company-logo.png'); 

正文部分:

$mail->Body = "<div id='container' style='height:auto;font- 
    family:Helvetica;border: 1px solid #CCC;'> 
<div id='header' style='margin: 0 auto; 
    background-color:#0958C3; color:#FFFFFF; 
    font-size: 20px;text-align: center; 
display:block; 
'> 
<img src='cid:logo' alt='Picture Description'/> <br> 
<strong>Heading</strong> 
</div> 
</div>"; 
+0

什麼是調用'addEmbeddedImage'回來嗎?使用這樣的相對路徑非常容易出錯。 – Synchro

回答

1

問題是,PHPMailer內嵌圖像相對於文檔嵌入,而不是相對於 其中腳本是從所謂的, 呼叫。

這意味着通過將../img/abc-company-logo.png傳遞到addEmbeddedImage()將搜索相對於實際PHPMailer類文件位置的此類路徑。

您應該將路徑更改爲絕對文件路徑。 見__DIR____FILE__例子這裏http://php.net/manual/fa/language.constants.predefined.php

例如:

$mail->addEmbeddedImage(dirname(__DIR__) . '/img/abc-company-logo.png','logo','abc-company-logo.png'); 
+0

感謝您的編輯,讓我試試並回復您 – mimi

+0

我已經添加了更精確的示例代碼,但您應該調試並確保將正確的絕對文件路徑傳遞給'addEmbeddedImage'方法。 –

+0

我很困惑,應該是什麼目錄名?這個特殊的php文件是在「包含」文件夾和圖像在「img」文件夾中。我試過包括(_DIR _)。其餘的代碼,但它顯示undefine功能包括 – mimi