18

我正在为电子邮件营销跟踪创建自己的电子邮件跟踪系统。我已经能够通过使用 http 引荐来源网址来确定他们正在使用的每个人的电子邮件客户端,但由于某种原因,GMAIL 根本不发送 HTTP_REFERRER!

所以我试图找到另一种方法来识别gmail何时从我的服务器请求透明图像。我得到以下标题print_r($_SERVER);

DOCUMENT_ROOT  =  /usr/local/apache/htdocs

GATEWAY_INTERFACE  =  CGI/1.1

HTTP_ACCEPT  =  */*

HTTP_ACCEPT_CHARSET  =  ISO-8859-1,utf-8;q=0.7,*;q=0.3

HTTP_ACCEPT_ENCODING  =  gzip,deflate,sdch

HTTP_ACCEPT_LANGUAGE  =  en-GB,en-US;q=0.8,en;q=0.6

HTTP_CONNECTION  =  keep-alive

HTTP_COOKIE  =  __utmz=156230011.1290976484.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=156230011.422791272.1290976484.1293034866.1293050468.7

HTTP_HOST  =  xx.xxx.xx.xxx

HTTP_USER_AGENT  =  Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10

PATH  =  /bin:/usr/bin

QUERY_STRING  =  i=MTA=

REDIRECT_STATUS  =  200

REMOTE_ADDR  =  xx.xxx.xx.xxx

REMOTE_PORT  =  61296

REQUEST_METHOD  =  GET

该列表中有什么有用的吗?或者我还能做些什么来真正获得 http 引荐来源网址,如果不是,其他 ESP 是如何设法找到是否使用 gmail 来查看电子邮件的

顺便说一句,如果我们能阻止这是否合乎道德,我很感激,因为许多 ESP 已经这样做了,我只是不想为他们的服务付费,我想在内部进行。

感谢所有人提供任何实施建议。

更新

只是想我会更新这个问题,并根据赏金使其更清楚。

我想知道用户在发送到 GMail 收件箱时打开我的电子邮件的时间。假设,我有通常的透明图像跟踪,并且用户没有阻止图像。

我想使用单个请求和请求透明图像时获得的标头详细信息来执行此操作。

4

2 回答 2

19

您的图像是使用 HTTP 还是 HTTPS 请求的?

如果是这样,那就是问题所在。

HTTPS->HTTP 引荐不会泄漏引荐标头 (HTTP_REFERER)。

如果您在从 HTTPS 页面请求的电子邮件中嵌入 HTTP 托管图像,则它不会发送引荐来源网址。(但是,请求 HTTPS 的 HTTP 页面确实会发送引用)。解决方案是将图像嵌入为 HTTPS。我已经测试过了,果然,安全的 HTTPS 图像确实发送了 Referrer。

默认情况下,Gmail 可以阻止加载图像的引荐来源网址信息的一种方法是,如果他们使用了引荐来源网址策略,大多数现代浏览器都支持此策略。(截至 2011 年,他们没有实施这样的政策。)

请参阅以下使用请求的 HTTP REFERER 动态生成的嵌入图像的屏幕截图: 在此处输入图像描述

于 2011-02-21T23:35:12.017 回答
0

使链接类似于http://www.example.com/image.jpg?h=8dh38dj

image.jpg 是一个 PHP 文件,8dh38dj 是包含链接的电子邮件的哈希值。当用户请求该文件时,您的 PHP 脚本将获得“8dh38dj”,在您的数据库中查找并找到匹配的电子邮件。从 example@gmail.com 解析域,即 gmail.com,您知道它来自 gmail。要使 jpg 文件作为 PHP 执行,请在 php 中使用 AddHandler

于 2011-02-19T19:14:47.947 回答