【发布时间】:2014-08-22 06:21:36
【问题描述】:
我想知道,我发送的哪些电子邮件打开了这封电子邮件。
这是我解决问题的方法 -
-
在应该呈现的 html 模板中创建一个图像文件。
-
打开一封电子邮件后,将对一个 URL 发出请求,该 URL 将具有 base64 编码的 url 模式:
base64_pattern = r'([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9 +/]{3}=)'
url(r'^tracking/(?P{})/$'.format(base64_pattern), 'tracking_image_url', name='tracking_image_url'),
-
该 URL 将提供图像,并更新计数器,如下 -
TRANSPARENT_1_PIXEL_GIF = "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\xff\xff\xff\x00\x00\x00\x21\xf9\x04 \x01\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02\x44\x01\x00\x3b"
查看 -
def tracking_image_url(request, mail_64=None):
eml = base64.b64decode(mail_64)
// Update the counters in the DB table for the email address.
return HttpResponse(TRANSPARENT_1_PIXEL_GIF, content_type='image/gif')
我做了所有这些,但无法跟踪打开,我错过了什么?
【问题讨论】:
-
//Update the counters这是一个 javascript/c 注释。不是 python ;) 但实际上,您需要在某处通知您的视图已被提供。无论您将其存储在表中还是其他地方。最终,您可能需要告诉我们Update the counters的含义并提供更多详细信息。 -
这基本上意味着,我在数据库中更新了该电子邮件的打开日志。你可以假设它运作良好。
-
您是否尝试过将这样生成的图像放置在模板内的真实视图中,以检查它是否在电子邮件之外工作?
-
你的问题解决了吗?我有同样的问题。
-
同样的问题。想了解更多?
标签: python html django image email