为 Gmail 创建跟踪像素

use*_*249 5 php email gmail tracking tracking-pixel

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

<img src="http://example.com/lp/index.php?p=tp&ord=xxxx" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

另请注意,我确实单击了电子邮件中的显示图像以将其激活。

jsa*_*ata 2

如果您的 URL 不可公开访问,就会发生这种情况。

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