【问题标题】:Pixel Tracking for a django based email基于 django 的电子邮件的像素跟踪
【发布时间】:2014-08-22 06:21:36
【问题描述】:

我想知道,我发送的哪些电子邮件打开了这封电子邮件。

这是我解决问题的方法 -

  1. 在应该呈现的 html 模板中创建一个图像文件。

  2. 打开一封电子邮件后,将对一个 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'),

  3. 该 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


【解决方案1】:

试试这个

import base64
from django.http import HttpResponse

PIXEL_GIF_DATA = base64.b64decode(
b"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")


def index(request):
   return HttpResponse(PIXEL_GIF_DATA, content_type='image/gif')

【讨论】:

    猜你喜欢
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 2016-05-17
    • 1970-01-01
    • 2011-06-30
    • 2013-04-06
    相关资源
    最近更新 更多