首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHPMailer中发送带有相对路径图像的HTML

问在PHPMailer中发送带有相对路径图像的HTML
EN

Stack Overflow用户
提问于 2021-12-27 11:28:04
回答 1查看 258关注 0票数 0

我想发送一些通讯,我写了一个HTML电子邮件与一个图片在中间。如果我使用图像的绝对路径,如果我在服务器中替换该图像,旧电子邮件也会被更新(因为它们是绝对路径的引用)。相反,我想要一个类似于相对路径的东西,或者以某种方式将图像嵌入电子邮件的那个部分(而不是作为附件),这样电子邮件是静态的,即使我在下个月替换了那个图像,它也不会影响。

我希望每个月保持相同的文件名,这样我就可以简单地用相同的名字替换另一个图像,然后用PHPMailer重新发送电子邮件。

此外,如果我嵌入图像,而不是添加完整的路径,它使它更安全,因为我不希望任何人访问图像的链接,只有当他们收到电子邮件。如果我给他们完整的路径,实际上有人可以分发图像,他们每个月都会得到免费的图像,因为我会在相同的URL中更新它。

有什么解决办法或解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-01-07 11:33:02

你写道:“或者以某种方式将图像嵌入电子邮件的那一部分(而不是作为附件),这样电子邮件是静态的,即使我在下个月替换该图像,它也不会影响。”

如果您不想将其作为附件嵌入并链接到它,那么让我们将图像嵌入到没有附件的邮件正文中。

首先获取映像的base64字符串:

代码语言:javascript
复制
$img=file_get_contents("some_image.jpg");
echo base64_encode($img);

您将看到图像的base64编码字符串,类似于“QSkZJRgABAgEAYABgA.”,将该字符串放入电子邮件正文:

代码语言:javascript
复制
$mail_body="
<html>
<head>
</head>
<body>

bla bla bla

<img src="data:image/jpeg;base64,QSkZJRgABAgEAYABgA....." />

bla bla bla

</body>
</html>";

如果您使用“phpmailer”发送电子邮件,请不要忘记在phpmailer中添加以下参数:

代码语言:javascript
复制
$mail->Body = $mail_body;
$mail->IsHTML(true);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70494875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档