用PHP生成的html MAIL显示来自Mysql Databse的图像?

时间:2017-04-11 17:35:49

标签: php mysql email phpmailer

//$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进行邮寄。

我是初学者在跟踪和错误时尚的学习。请帮我找到解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您需要做的第一件事是将图像编码为base64。 这将生成包含编码图像的长字符串 您的编码图像看起来像这样

  

数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAtAAAAEICAIAA ...

此文本(编码图像)是您在数据库中保存的内容。 用于此目的的推荐数据类型是BLOB(在MariaDb / MySql中)或可以保存长文本的任何其他数据类型。

例如,您可以使用像https://www.base64-image.de/这样的在线转换器,或使用PHP内置函数。请参阅Stackoverflow PHP答案:How to convert an image to base64 encoding?