Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 通知用户已退回的确认电子邮件_Django - Fatal编程技术网

Django 通知用户已退回的确认电子邮件

Django 通知用户已退回的确认电子邮件,django,Django,我的网站要求用户确认他们在注册期间使用的电子邮件地址。因此,我通常发送确认电子邮件。如果这样的邮件被退回,我的邮件提供商(sendgrid)会通知我。 我想在用户下次访问我的网站时通知他电子邮件的问题。 来自我的电子邮件提供商的通知是对某个URL的异步回调,我需要一种方法来查找用户会话并存储信息 发送电子邮件时,我可以在请求中添加一些标识符,然后sendgrid会将这些标识符包含在弹出消息中。然而,出于某些原因,如果可能的话,我宁愿不走这条路。我更愿意存储用户在匿名会话中使用的电子邮件地址,并使

我的网站要求用户确认他们在注册期间使用的电子邮件地址。因此,我通常发送确认电子邮件。如果这样的邮件被退回,我的邮件提供商(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
中检索信息

有两种设置:

默认情况下为False。如果设置为true,则当用户关闭浏览器时,会话将被销毁。您可能希望将此值设置为False

这是会话的默认持续时间,以秒为单位。默认值为1209600,对应于2周


注意:您可以通过直接调用
request.session.set\u expiry()
修改会话持续时间。这允许在每个会话的基础上覆盖默认设置。

您必须这样做,还是愿意接受其他建议?我愿意接受其他建议。我假设每个用户都会收到一封独特的电子邮件,所以归根结底就是提取哪位用户的电子邮件被退回的信息。你能分享电子邮件发送方式等的详细信息吗?我正在使用django注册,用户可以通过输入他们的电子邮件地址请求新的确认电子邮件。但理想的情况是,我可以给他们一个便条,当他们回到我的网站时,他们的最后一封电子邮件确实被退回了。