问题描述
我想做一个类似于chrome扩展mailtrack的程序。
它可以跟踪用户打开电子邮件的时间,我也想这样做。
我在我的网络服务器上制作了一个图像,以便它可以在需要时打开并写入文件。 (例如跟踪像素)。
这不起作用,因为谷歌代理并缓存图像;将 url 重写为 https://foo.googleusercontent.com/proxy/foobarfoobarfoobar#myoriginalurl。
这会导致请求不会发送到我的服务器,而是发送到谷歌。
我该如何解决这个问题?
如果这是不可能的,好吧,那么前面提到的邮件跟踪将如何工作?
我的代码是:
<?PHP
$file = 'image.png';
$fp = fopen('log.log','a');
fwrite($fp,'Opened' . PHP_EOL);
header('Content-Type: image/png');
readfile($file);
?>
当您发送电子邮件时,Mailtrack 会自动向该电子邮件添加一个跟踪像素(一个非常小的图像)。然后,当它被打开时,跟踪像素被下载并向我们的服务器发送一个调用,让我们知道邮件已被打开。
还有,
Mailtrack 是一种电子邮件跟踪工具。它会通过其基于像素的跟踪系统告诉您您的电子邮件是否已被打开,以及打开了多少次。
解决方法
我已经修好了。我现在用python来做。
其他人想知道的服务器代码是:
import flask
import random
app = flask.Flask(__name__)
@app.route('/sig.png')
def sig():
print(f'Requested {random.randint(1,9999)}')
return flask.send_file('images/sig.png','image/png')
app.run('0.0.0.0',8080)