2017-04-11 60 views
0
//$mail->AddEmbeddedImage("data:image/jpeg;base64,'.base64_encode($cmpimage).'", "img","image/*");` 
$mail->AddEmbeddedImage("GM Community Profile Image.jpg", "my-attach", "image/jpeg");` 
//$mail->Body = '<img alt="hey" src="data:image/jpeg;base64,'.base64_encode($cmpimage).'">'; 
$mail->Body = '<img alt="PHPMailer" src="cid:my-attach"> '; 

我需要一種方式來發送帶有圖像的電子郵件(不是附件),圖像是從表單或數據庫中獲取的。我使用phpmailer進行郵件發送。在PHP中顯示圖像從Mysql Databse生成html MAIL?

我是新來的php學習的痕跡和錯誤fashion.Please幫我找到一個解決方案。先謝謝你。

回答

0

您需要做的第一件事是將圖像編碼爲base64。 這將生成包含編碼的圖像 你的編碼圖像將是這個樣子

數據的長字符串:圖像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAtAAAAEICAIAA ...

該文本(編碼圖像)是你保存在你的數據庫中的東西。 用於此目的的推薦數據類型是BLOB(在MariaDb/MySql中)或任何其他可以保存長文本的數據類型。

例如,您可以使用一個這樣的在線轉換器https://www.base64-image.de/或使用內置函數的PHP。請參閱Stackoverflow PHP回答:How to convert an image to base64 encoding?

+0

我知道基本編碼,我可以從網站上的數據庫顯示圖像。不過,我正在尋找一種方式來顯示郵件中的圖像不工作。感謝您的幫助。@ docliving –

+0

我還沒有確認它,但根據這篇文章[http://stackoverflow.com/questions/16242489/send-a-base64-image-in-html-email,許多電子郵件客戶端不完全支持附加的圖像 – docliving