5

我正在尝试创建一个跟踪像素,该像素将记录在我的数据库中打开电子邮件的时间。我通过在 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 中查看图像会返回 not found 的任何想法?这不是最好的方法吗?这是我第一次尝试跟踪像素。

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

4

1 回答 1

2

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

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

于 2016-01-21T14:52:58.687 回答