php - 在 PHP 生成的 html MAIL 中显示来自 Mysql 数据库的图像?

标签 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 进行邮件发送。

我是 php 学习新手,请帮助我找到解决方案。预先感谢您。

最佳答案

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

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

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

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

关于php - 在 PHP 生成的 html MAIL 中显示来自 Mysql 数据库的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43352709/

相关文章:

javascript - PHP 循环 JSON ajax 成功

php - HTML5 Metro 应用程序是否有可能在 PHP 中使用 Web 服务?

mysql - 从 Mac Rails 应用程序连接到 Windows 7 计算机上运行的 MySQL?

php - 基于 Web 的文本聊天?

java - 每次我尝试在 mysql 数据库中插入数据(在 springboot java 上)时,Autowired 存储库都会收到 nullPointerException 错误

java - 如何在 Outlook 中创建电子邮件并使其对用户可见

php - Apache/Httpd 与 PHP 5.5 一起使用的 httpd_module 名称是什么?

php - 如何在 Wamp 上安装 qt-faststart?

java - Java中的电子邮件客户端

Excel VBA : Saving and Attaching a worksheet as pdf