在 PHP 从 Mysql 数据库生成的 html MAIL 中显示图像?

Posted

技术标签:

【中文标题】在 PHP 从 Mysql 数据库生成的 html MAIL 中显示图像?【英文标题】:Display image in PHP generated html MAIL from Mysql Databse? 【发布时间】:2017-09-07 05:47:04 【问题描述】:
//$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  src="data:image/jpeg;base64,'.base64_encode($cmpimage).'">';
$mail->Body = '<img  src="cid:my-attach">  ';

我需要一种方法来发送包含图像(不是附件)的电子邮件,并且图像是从表单或数据库中获取的。我使用 phpmailer 进行邮件发送。

我是 php 的新手,以跟踪和错误的方式学习。请帮我找到解决方案。提前谢谢你。

【问题讨论】:

【参考方案1】:

您需要做的第一件事是将图像编码为 base64。 这将生成一个包含编码图像的长字符串 您的编码图像将如下所示

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtAAAAEICAIAA...

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

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

【讨论】:

我知道基本编码,我可以在网站上显示来自数据库的图像。但是,我正在寻找一种在邮件中显示图像的方法,但它不起作用。无论如何感谢您的帮助。@docliving 我还没有确认,但是根据这篇文章[***.com/questions/16242489/…,很多邮件客户端不完全支持附加图片

以上是关于在 PHP 从 Mysql 数据库生成的 html MAIL 中显示图像?的主要内容,如果未能解决你的问题,请参考以下文章

从 PHP 数组生成 HTML 表 [关闭]

通过逐行从数据库中获取数据,使用 PHP/MySQL 生成 QR 码

单击行中的切换按钮时,如何从 mysql select 生成的 php 表中发布?

如何使用 PHP 动态生成 HTML 页面?

使用 PHP + CodeIgniter 从 MySQL 数据库生成无序列表

skymvc网站测试之mysql数据生成