【发布时间】:2018-09-09 12:43:34
【问题描述】:
我是第一次构建跟踪功能。
错误地,我首先尝试创建一个可以处理跟踪条件的 PHP 脚本,但我不明白是否可以让它出现在电子邮件中。 [这就是我没有计划这个功能的结果]
我现在将继续向电子邮件添加一个像素,并使用服务器访问日志来增加跟踪统计信息。
这让我开始思考,有没有办法欺骗网页使其表现得像一个像素?它可以在电子邮件上使用吗?
听起来太牵强了,但希望有人能澄清如果不是这样,为什么不会这样。
谢谢。
【问题讨论】:
我是第一次构建跟踪功能。
错误地,我首先尝试创建一个可以处理跟踪条件的 PHP 脚本,但我不明白是否可以让它出现在电子邮件中。 [这就是我没有计划这个功能的结果]
我现在将继续向电子邮件添加一个像素,并使用服务器访问日志来增加跟踪统计信息。
这让我开始思考,有没有办法欺骗网页使其表现得像一个像素?它可以在电子邮件上使用吗?
听起来太牵强了,但希望有人能澄清如果不是这样,为什么不会这样。
谢谢。
【问题讨论】:
PHP 脚本可以像您喜欢的任何类型的文档一样运行,您只需让浏览器(或电子邮件客户端等)知道发生了什么。
默认情况下,PHP 会发回 text/html 的 Content-Type 标头,表示您正在提供网页服务。但是您可以覆盖它以发送您想要的任何内容 - 如果您希望脚本生成 PDF、Excel 工作表或图像,您只需要发送正确的标题。为此,您只需调用header 函数,指定相关的内容类型。对于图像,这将类似于:
header('Content-Type: image/png');
之后,如果您回显图像的来源,客户端会将其视为图像。如果你在 PHP 脚本所在的目录下有一个单像素图像文件,这可以很简单:
readfile('single_pixel_image.png');
直接从磁盘读取文件并将其发送给客户端。
所有这一切的重要部分是,在您拨打header 之前,您可以做任何您想做的事情。在数据库中记录内容、将文件写入磁盘、将信息发布到 API,以及您可以在普通 PHP 脚本中执行的任何操作。
在你写完你需要的一切之后,你可以使用一个普通的图像标签来嵌入它:
<img src="tracking.php" />
除此之外,您可能想做的一件事是将一个看起来更“标准”的图像文件名重定向到您的脚本,并添加一个唯一标识符。在 Apache 中,您会做这样的事情,但根据您使用的网络服务器,您需要进行调整:
RewriteRule ^/?tracking/(.*).png$ tracking.php?track=$1 [QSA, L]
这将允许您在电子邮件图像标签中使用tracking/1234.png,并且您的 PHP 将在幕后运行。在脚本中,您可以使用 $_GET['track'] 引用您的唯一 ID,并记录需要记录的任何内容。
【讨论】: