0

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

但是,它不适用于 Yahoo 邮件客户端。收到电子邮件,下载并显示引用的图像,但是像素不会触发/下载,php 脚本也不会运行(据我所知)。有谁知道为什么雅虎邮件客户端和我尚未测试的其他潜在客户端会发生这种情况?

这是 html img 标签:

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

这是php脚本:

<?php


// Database code omitted

$result= mysql_query("INSERT INTO `CelebrationOpens` SET `time` = NOW(), `country` = '$country', `state` = '$state', `email` = '$email' ") or die(mysql_error());

// Create an image, 1x1 pixel in size
$im=imagecreate(1,1);

// Set the background colour
$white=imagecolorallocate($im,255,255,255);

// Allocate the background colour
imagesetpixel($im,1,1,$white);

// Set the image type
header("content-type:image/jpg");

// Create a JPEG file from the image
imagejpeg($im);

// Free memory associated with the image
imagedestroy($im);

?>

我也尝试过像这样触发像素:

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


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

fpassthru($fp);
exit;
4

2 回答 2

0

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

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

不幸的是,这是对开放跟踪的限制,也是为什么数据不完整并且总是偏向于 Apple 客户的原因。开放式跟踪实际上意味着“他们打开它并取消阻止图像或他们在 Apple 上打开”。

于 2013-11-05T14:11:36.047 回答
0

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

图像标签现在看起来像这样:

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

感谢您帮助指导我实现这一发现。

于 2013-11-07T02:13:32.033 回答