Django内置函数发送激活邮件整个流程以及代码

Django中内置了邮件发送功能,被定义在django.core.mail模块中。发送邮件需要使用SMTP服务器,常用的免费服务器有:163、126、QQ,下面以163邮件为例。

1)注册163邮箱,登录后设置。
在这里插入图片描述

2)在新页面中点击“客户端授权密码”,勾选“开启”,弹出新窗口填写手机验证码。
在这里插入图片描述

3)填写授权码。
在这里插入图片描述

4)提示开启成功。
在这里插入图片描述

5)打开项目目录中的settings.py文件,点击下图配置。

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 25
#发送邮件的邮箱
EMAIL_HOST_USER = '邮箱账号'  # 需要修改这里
#在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = '授权密码'  # 需要设置
#收件人看到的发件人
EMAIL_FROM = '发件人<%s>' % EMAIL_HOST_USER  # 需要填写,发件人自定义

6)在响应的应用的views.py文件中新建视图send。

 # 发邮件
subject = "天天生鲜欢迎信息"
message = ''
html_message = '<h1>%s, 欢迎您成为天天生鲜注册会员</h1> \
                  请点击下面的链接激活您的账号<br/> \
                  <a href="http:127.0.0.1:8000/user/active/%s"> \
                  http:127.0.0.1:8000/user/active/%s</a>' % (username, token, token)        
send = settings.EMAIL_FROM
receiver = [email]
send_mail(subject, message, send, receiver, html_message=html_message)

7)在响应的应用的urls.py文件中配置

url(r"^active/(?P<token>.*)$", ActiveView.as_view(), name="active"), 

8)设置响应的点击发送后的链接对应的视图来处理事务

class ActiveView(View):
    """用户激活"""
    def get(self, request, token):
        # 用户激活
        # 进行解密, 获取激活信息
        serializer = Serializer(settings.SECRET_KEY, 3600)
        try:
            info = serializer.loads(token)
            user_id = info["confirm"]
            # 根据id获取用户信息
            user = User.objects.get(id=user_id)
            user.is_active = 1
            user.save()

            # 跳转到登录页面
            return redirect(reverse("user:login"))

        except SignatureExpired as e:
            # 激活链接已经过期
            return HttpResponse("激活链接已过期")
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值