php – 为Gmail创建跟踪像素

我正在尝试创建一个跟踪像素,用于记录在我的数据库中打开电子邮件的时间.我这样做是通过在URL路径中调用php链接.

<img src="http://example.com/lp/index.php?p=tp&ord=xxxx" />

然后在我的控制器中,我有代码记录时间,然后是这段代码读取1×1图像并将其显示在屏幕上.

$fileOut = 'inc/sections/common/tpixel.jpg';
header("Content-Type: image/jpg");
header('Content-Length: ' . filesize($fileOut));
readfile($fileOut);

如果将img标记放在网页的HTML中并且在浏览器中查看网页,则这可以按预期工作.但是,当我将此图像标记放入电子邮件并使用gmail查看时,时间戳不会触发,也不会显示图像.它只返回404错误.

关于为什么在gmail中查看图像的任何想法都没有找到?
这不是最好的方法吗?这是我第一次尝试跟踪像素.

另请注意我点击电子邮件中的显示图像来激活它.

最佳答案 如果您的网址无法公开访问,则会发生这种情况.

这是因为GMail代理图片:https://blog.filippo.io/how-the-new-gmail-image-proxy-works-and-what-this-means-for-you/ – 所以你可以从浏览器访问跟踪像素的URL是不够的:GMail的服务器也需要能够访问它.

点赞