PHP:获取阅读回执时显示实际图像

时间:2014-12-03 14:58:24

标签: php email laravel-4

所以我正在努力获取电子邮件阅读收据(Laravel和PHP),我在这里尝试在打开电子邮件时更新数据库中的字段。
描述
1.向用户发送电子邮件 2.该用户阅读邮件后,将邮件状态从“未读”更新为“读取”。

代码我已经添加以实现它
1.将邮件ID发送到邮件正文 2.添加<img>标记,例如

<p><img src="http://www.xyzdomain.com/messagestatus/{{$id}}"></p>

3。在控制器中有一个带有上述URL路由的函数,它将为我进行数据库更新。

问题
虽然当用户阅读该邮件时状态已成功更新为“已读”。邮件正文中显示的图像被破坏,因为我传递的是网址,而不是图像。有人可以指导我如何显示一些图像,如一些透明的背景图像,不会显示破碎的图像 提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您在更新后只返回图像内容(1x1小透明图像),则可以避免重定向:

<?php
$image = 'image.png';
header('Content-type: image/png');
readfile($image);
exit;

当然,您必须返回mime类型。

答案 1 :(得分:0)

您应该在数据库更新后重定向到图像文件...例如,在此网址中创建图像:

  

http://www.xyzdomain.com/img.png

(最好是1x1像素透明图像)

然后,使用header()将数据库更新重定向到此图像文件后。

<?php

   ... some db updating code ...

   header('Location: http://www.xyzdomain.com/img.png');
   die();

 ?>

这样,您客户的电子邮件中的图片就不会被破坏。更新数据库后,它实际上会获得一个图像文件。