PHP电子邮件像素跟踪未在Yahoo Mail中启动

PHP电子邮件像素跟踪未在Yahoo Mail中启动,php,email,html-email,yahoo,Php,Email,Html Email,Yahoo,为了跟踪电子邮件打开率,我在从服务器发送的大量电子邮件中发射一个像素。该脚本在Mac Mail中工作。接收电子邮件并下载像素 但是,它在Yahoo邮件客户端中不起作用。收到电子邮件,下载并显示引用的图像,但是像素不会启动/下载,php脚本也不会运行(据我所知)。有人知道为什么Yahoo邮件客户端和我尚未测试的其他潜在客户端会出现这种情况吗 以下是html img标记: <img src="http://mysite.com/email_track.php?email=email_value

为了跟踪电子邮件打开率,我在从服务器发送的大量电子邮件中发射一个像素。该脚本在Mac Mail中工作。接收电子邮件并下载像素

但是,它在Yahoo邮件客户端中不起作用。收到电子邮件,下载并显示引用的图像,但是像素不会启动/下载,php脚本也不会运行(据我所知)。有人知道为什么Yahoo邮件客户端和我尚未测试的其他潜在客户端会出现这种情况吗

以下是html img标记:

<img src="http://mysite.com/email_track.php?email=email_value&country=country_value&state=state_value" />

您提到您正在使用所有嵌入的图像,这就是为什么它们总是显示出来,而与您是否选择为电子邮件下载图像无关。嵌入图像是图像阻止的解决方法,但会导致电子邮件文件大

所有非嵌入图像都需要显示才能工作。你的跟踪像素是一个。默认情况下,苹果客户端下载所有图像,而其他客户端则不下载。跟踪图像未触发,因为您尚未在Yahoo(或任何其他客户端)的电子邮件中下载图像


不幸的是,这是对开放式跟踪的一个限制,也是为什么数据不完整并且总是偏向苹果客户的原因。“开放跟踪”的真正含义是“他们打开了它并解除了对图像的阻止,或者他们在苹果上打开了图像”。

我找到了罪魁祸首,这与缓存像素链接有关。我在imgsrc中添加了一个随机字符串,现在它可以在ymail和gmail中使用

图像标记现在看起来如下所示:

$name = './concert/pixel.png';
$fp = fopen($name, 'rb');


header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

fpassthru($fp);
exit;
<img src="http://mysite.com/email_track.php?email=email_value&country=country_value&state=state_value&random_value=<?php echo rand() ?>" />
“/>

感谢您帮助我找到这一发现。

我猜是图像拦截器。除非用户接受图像,否则许多/大多数电子邮件程序都会因此而阻止图像。@类我认为这是不可能的,因为其他图像会显示在电子邮件中。我将编辑我的问题以澄清这一点。我要检查的第一件事是您的web服务器日志。如果其他图像正在下载,则您的web服务器日志将包括对它们的点击。日志是否也包括对跟踪像素的点击?如果否,则客户端从未请求过它。如果是,则返回状态为200?@AlexHowansky如果我使用imagecreate()创建图像,那么日志中的图像将命名为什么功能?也许他们正在缓存像素图像?用
curl--head点击像素URLhttp://...
并查看它发送的标题。我说“嵌入”可能用错了词。我的图像是带有URL参考的标记。我的yahoo客户端在单击“显示图像”后“下载”了所有图像“。我想一旦我清除了所有要下载的图像,像素就会启动。
<img src="http://mysite.com/email_track.php?email=email_value&country=country_value&state=state_value&random_value=<?php echo rand() ?>" />