TL; DR:如果收件箱中使用相同的图像跟踪器(当然还有不同的ID)存在多个电子邮件,则Mobile GMail应用程序似乎会静默打开多个缓存的跟踪像素。
我有一个像素img跟踪器,具有以下1x1像素:
<img src='https://example.com/tracker.php?trackerID=[uniqueID]' alt='' />
其中“ [uniqueID]”对于每个电子邮件和用户都是唯一的。
我的tracker.php页面具有以下内容:
// URL to the image
$graphicAddress = "https://example.com/image.png";
// Size of the image for headers
$fileSize = filesize("image.png");
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false);
header('Content-Disposition: attachment; filename="image.png"');
header('Content-Transfer-Encoding: binary');
header ('Content-Type: image/png');
header('Content-Length: '.$fileSize);
readfile($graphicAddress);
// Update MySQL (this isn't the function, but it's an example)
updateSQL($trackerID,$date);
除了在我的移动Gmail应用程序(Android)中,所有更新和工作均完全符合桌面设备的预期。在移动设备中,如果收件箱中的图像跟踪器中有多封电子邮件,它将更新多个跟踪器。
看起来gmail更新了我单击的电子邮件上方和下方的电子邮件。我查看了更新发生时间的时间戳记,它几乎是即时的。
我以为我可以检查日期时间,但是如果我的收件箱中有10封跟踪的电子邮件,则它们之间的间隔会打开几秒钟。
同样,在桌面上也可以正常工作,没有例外。在移动设备上可以正常运行- IF 我的收件箱中只有一封电子邮件和跟踪器。
我尝试检查IP地址,希望手机上的点击与Google似乎自己打开的点击不同,但是IP地址是随机的。
所以我无法按IP或时间戳进行过滤。