我想发送一些通讯,我写了一个HTML电子邮件与一个图片在中间。如果我使用图像的绝对路径,如果我在服务器中替换该图像,旧电子邮件也会被更新(因为它们是绝对路径的引用)。相反,我想要一个类似于相对路径的东西,或者以某种方式将图像嵌入电子邮件的那个部分(而不是作为附件),这样电子邮件是静态的,即使我在下个月替换了那个图像,它也不会影响。
我希望每个月保持相同的文件名,这样我就可以简单地用相同的名字替换另一个图像,然后用PHPMailer重新发送电子邮件。
此外,如果我嵌入图像,而不是添加完整的路径,它使它更安全,因为我不希望任何人访问图像的链接,只有当他们收到电子邮件。如果我给他们完整的路径,实际上有人可以分发图像,他们每个月都会得到免费的图像,因为我会在相同的URL中更新它。
有什么解决办法或解决办法吗?
发布于 2022-01-07 11:33:02
你写道:“或者以某种方式将图像嵌入电子邮件的那一部分(而不是作为附件),这样电子邮件是静态的,即使我在下个月替换该图像,它也不会影响。”
如果您不想将其作为附件嵌入并链接到它,那么让我们将图像嵌入到没有附件的邮件正文中。
首先获取映像的base64字符串:
$img=file_get_contents("some_image.jpg");
echo base64_encode($img);您将看到图像的base64编码字符串,类似于“QSkZJRgABAgEAYABgA.”,将该字符串放入电子邮件正文:
$mail_body="
<html>
<head>
</head>
<body>
bla bla bla
<img src="data:image/jpeg;base64,QSkZJRgABAgEAYABgA....." />
bla bla bla
</body>
</html>";如果您使用“phpmailer”发送电子邮件,请不要忘记在phpmailer中添加以下参数:
$mail->Body = $mail_body;
$mail->IsHTML(true);https://stackoverflow.com/questions/70494875
复制相似问题