所以我正在努力获取电子邮件阅读收据(Laravel和PHP),我在这里尝试在打开电子邮件时更新数据库中的字段。
的描述
1.向用户发送电子邮件
2.该用户阅读邮件后,将邮件状态从“未读”更新为“读取”。
代码我已经添加以实现它
1.将邮件ID发送到邮件正文
2.添加<img>
标记,例如
<p><img src="http://www.xyzdomain.com/messagestatus/{{$id}}"></p>
3。在控制器中有一个带有上述URL路由的函数,它将为我进行数据库更新。
问题
虽然当用户阅读该邮件时状态已成功更新为“已读”。邮件正文中显示的图像被破坏,因为我传递的是网址,而不是图像。有人可以指导我如何显示一些图像,如一些透明的背景图像,不会显示破碎的图像
提前致谢。
答案 0 :(得分:1)
如果您在更新后只返回图像内容(1x1小透明图像),则可以避免重定向:
<?php
$image = 'image.png';
header('Content-type: image/png');
readfile($image);
exit;
当然,您必须返回mime
类型。
答案 1 :(得分:0)
您应该在数据库更新后重定向到图像文件...例如,在此网址中创建图像:
(最好是1x1像素透明图像)
然后,使用header()
将数据库更新重定向到此图像文件后。
<?php
... some db updating code ...
header('Location: http://www.xyzdomain.com/img.png');
die();
?>
这样,您客户的电子邮件中的图片就不会被破坏。更新数据库后,它实际上会获得一个图像文件。