基于Django的邮件像素追踪
我想知道,我发送的邮件中,哪些被打开了。
这是我解决这个问题的方法 -
在要显示的HTML模板中创建一个图片文件。
< img src="{{ tracking_url }}" height="1" width="1">
当邮件被打开时,会向一个网址发送请求,这个网址会有一个经过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'),
这个网址会返回一张图片,并更新计数器,具体如下 -
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')
我做了这些,但无法追踪邮件是否被打开,我漏掉了什么?
1 个回答
-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')