Django 通知用户已退回的确认电子邮件
我的网站要求用户确认他们在注册期间使用的电子邮件地址。因此,我通常发送确认电子邮件。如果这样的邮件被退回,我的邮件提供商(sendgrid)会通知我。 我想在用户下次访问我的网站时通知他电子邮件的问题。 来自我的电子邮件提供商的通知是对某个URL的异步回调,我需要一种方法来查找用户会话并存储信息 发送电子邮件时,我可以在请求中添加一些标识符,然后sendgrid会将这些标识符包含在弹出消息中。然而,出于某些原因,如果可能的话,我宁愿不走这条路。我更愿意存储用户在匿名会话中使用的电子邮件地址,并使用此信息在以后查找他的会话Django 通知用户已退回的确认电子邮件,django,Django,我的网站要求用户确认他们在注册期间使用的电子邮件地址。因此,我通常发送确认电子邮件。如果这样的邮件被退回,我的邮件提供商(sendgrid)会通知我。 我想在用户下次访问我的网站时通知他电子邮件的问题。 来自我的电子邮件提供商的通知是对某个URL的异步回调,我需要一种方法来查找用户会话并存储信息 发送电子邮件时,我可以在请求中添加一些标识符,然后sendgrid会将这些标识符包含在弹出消息中。然而,出于某些原因,如果可能的话,我宁愿不走这条路。我更愿意存储用户在匿名会话中使用的电子邮件地址,并使
这有可能吗?我可以向匿名会话添加一些信息吗?这些信息是否保存在数据库中,以便我以后查找?My Session config是默认的Django配置?Tobitobs,另一种方式是:您可以将匿名电子邮件附加到他的本地存储桶,稍后您可以将其取回。但我的用户在浏览器中清除cookies和其他数据-这些电子邮件可能会丢失
还有一种方法-使用设备浏览器设备操作系统IP(或其他)的快照保存电子邮件,并将此信息存储在数据库中。通常,我不太确定依靠能够识别返回的匿名会话是否是一个好主意 我经常看到的另一种处理此问题的方法是允许用户完成注册,并能够使用用户名和密码登录,但可能会在页面上使用一个字段将用户标记为未验证。未经验证的用户可能会被拒绝访问您网站的大部分内容。登录后,如果他们还没有收到验证电子邮件,他们可以要求再次发送验证电子邮件,如果他们出错,还可以选择更新电子邮件 看起来这个应用在很多方面都有所帮助 文档:您可能想要使用。默认情况下,在使用
manage.py startproject
创建的Django项目中启用该选项
基本上,SessionMiddleware
为对Django项目执行的所有请求添加了一个session
属性。您可以在视图中将此属性用作标准python dict:
def my_view(request):
# At some point, you retrieved the visitor email...
user_email = 'john@example.com'
request.session['user_email'] = user_email
默认情况下,此dict中存储的信息是持久的
从技术上讲,此dict中存储的数据存储在默认数据库中的表django\u session
中。一个唯一的session\u密钥
与这些数据关联,并且该密钥存储在访客计算机上的cookie中。这意味着数据有一个过期日期。当用户返回您的网站时,如果cookie仍然存在(并且没有过期),您可以在几天前存储的request.session
中检索信息
有两种设置:
注意:您可以通过直接调用
request.session.set\u expiry()
修改会话持续时间。这允许在每个会话的基础上覆盖默认设置。您必须这样做,还是愿意接受其他建议?我愿意接受其他建议。我假设每个用户都会收到一封独特的电子邮件,所以归根结底就是提取哪位用户的电子邮件被退回的信息。你能分享电子邮件发送方式等的详细信息吗?我正在使用django注册,用户可以通过输入他们的电子邮件地址请求新的确认电子邮件。但理想的情况是,我可以给他们一个便条,当他们回到我的网站时,他们的最后一封电子邮件确实被退回了。