我正在尝试创建一个跟踪像素,用于记录在我的数据库中打开电子邮件的时间。我这样做是通过在URL路径中调用php链接。
<img src="http://example.com/lp/index.php?p=tp&ord=xxxx" />
然后在我的控制器中,我有代码记录时间,然后是这段代码读取1x1图像并将其显示在屏幕上。
$fileOut = 'inc/sections/common/tpixel.jpg';
header("Content-Type: image/jpg");
header('Content-Length: ' . filesize($fileOut));
readfile($fileOut);
如果将img标记放在网页的HTML中并在浏览器中查看网页,则可以正常工作。但是,当我将此图像标记放入电子邮件并使用gmail查看时,时间戳不会触发,也不会显示图像。它只返回404错误。
为什么在gmail中查看图像的任何想法都会找不到? 这不是最好的方法吗?这是我第一次尝试跟踪像素。
另请注意我点击电子邮件中的显示图片以激活它。
答案 0 :(得分:1)
如果您的网址无法公开访问,则会发生这种情况。
这是因为GMail会代理图片:https://blog.filippo.io/how-the-new-gmail-image-proxy-works-and-what-this-means-for-you/ - 因此您无法从浏览器访问该跟踪像素的网址:GMail的服务器需要能够访问它也是。