2015-05-11 58 views
2

我試圖從包含圖像的PHP發送HTML郵件。發送郵件時缺少<img>的src屬性

我收到電子郵件,除了<img>標籤以外,所有HTML標籤都很好看。

電子郵件的消息是這樣的:

$message = '<img src="http://your-click.ch/wp-content/uploads/2014/11/logo1.png" alt="Your Click" width="131" height="52" border="0" />';

當我收到郵件,我看到有一個形象,但它僅僅是空白。當我檢查這個元素時,我看到這個代碼:

<img alt="Your Click" width="131" height="52" border="0"> 

正如你所看到的那樣,整個src屬性是缺失的?爲什麼?

+0

的'/>'也得到了替換'>',所以HTML就被解析了。也許你的郵件軟件去除圖像? – Felk

+0

大多數郵件客戶端會因爲濫用而追蹤emaul地址是否適用於垃圾郵件發送者而刪除圖片 –

+0

頂部是否有消息要求您下載圖片? –

回答

3

出於安全原因,某些電子郵件客戶端會過濾掉外部鏈接的圖像。嘗試編碼圖像並將其包含在消息正文中,而不是外部鏈接它。

+0

並不總是可以對電子郵件中的所有圖像進行編碼。我包括許多其他人已成功使用外部圖像 –

0

查看是否存在以下幫助

$message = '<img src="http://your-click.ch/wp-content/uploads/2014/11/logo1.png" alt="Your Click" width="131" height="52" border="0" style="width:131px; height:52px; border:0px; background:url('http://your-click.ch/wp-content/uploads/2014/11/logo1.png')" />'; 
+0

這不適合我。我得到的是:'Your Click' –

3

的圖像可能是由收件人郵件服務器過濾,嘗試base64_encode的圖像,即:

$image = file_get_contents('http://your-click.ch/wp-content/uploads/2014/11/logo1.png'); 
$message = '<img src="data:image/png;base64,'.base64_encode($image).'" alt="Your Click" width="131" height="52" border="0" />'; 
+1

我以前有類似的問題,base64是我如何解決它,所以這得到我的投票 – Darren

+0

我試過這個代碼,但我仍然有同樣的問題。 src屬性不會出現。 –

+0

你有沒有試過發送給不同的收件人?如果是的話,結果如何? –