我是第一次构建跟踪功能。
错误地,我首先尝试创建一个可以处理跟踪条件的PHP脚本,但是我不明白是否有可能使其显示在电子邮件中。 [这就是我没有计划此功能的结果]
我要继续,现在在电子邮件中添加一个像素,然后使用服务器访问日志来增加跟踪统计信息。
这让我开始思考,是否仍然可以将网页欺骗为一个像素?可以在电子邮件上使用吗?
听起来太遥不可及,但希望有人能澄清为什么不是这样的情况。
谢谢。
答案 0 :(得分:5)
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中,您将执行以下操作,但是根据您使用的Web服务器,您需要进行调整:
RewriteRule ^/?tracking/(.*).png$ tracking.php?track=$1 [QSA, L]
这将使您可以在电子邮件图像标签中使用tracking/1234.png
,并在后台运行PHP。在脚本中,您可以使用$_GET['track']
来引用您的唯一ID,并记录任何需要记录的内容。