基于django的电子邮件的像素跟踪

时间:2014-07-01 15:50:23

标签: python html django image email

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

以下是我解决问题的方法 -

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

    < img src =" {{tracking_url}}"高度=" 1"宽度=" 1">

  2. 打开电子邮件后,会向网址发出请求,该网址将包含base64编码的网址格式:

    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"

  4. 查看 -

    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')
    

    我做了所有这些,但是无法跟踪打开,我缺少什么?

1 个答案:

答案 0 :(得分:-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')