美文网首页
django中邮箱验证这么写

django中邮箱验证这么写

作者: 奶茶分你一半 | 来源:发表于2018-11-17 21:14 被阅读0次

django中的邮箱验证接口

from Mp
ps:本文为个人练手项目总结,若有不妥的地方望指正,防止误导人嘻嘻嘻

配置发送邮件的邮箱

在所用邮箱中开启pop3,smtp,imap的服务,并获取/设置授权码
这里以qq邮箱为例

登录qq邮箱,点击设置


1.png

选到账户,滚动条向下拉


2.png

找到两个有SMTP服务的东西,按图示开启


4.png

点击总生成连接,获取授权码

在配置文件中设置邮箱的配置信息

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'  # 因为是示例为qq浏览器,所以这里是qq
EMAIL_PORT = 25
EMAIL_HOST_USER = '发送邮件的邮箱'
EMAIL_HOST_PASSWORD = '在邮箱中设置的客户端授权密码' 
EMAIL_FROM = '略略略略略略'  # 收件人看到的发件人

使用Django提供的模块发送邮件(建议使用celery)

下方代码写在celery中

send_mail(subject, message, from_email, recipient_list,html_message=None)
# subject 邮箱标题
# message 普通邮件正文,普通字符串
# from_email 发件人
# recipient_list 收件人列表
# html_message 多媒体邮件正文,可以说html的字符串

msg='<a href="想要发过去的验证链接" target="_blank">点我呀</a>'
send_mail('点我验证!','xxx',settings.EMAIL_FROM, ['接收人列表], html_message=msg)

下文以用户注册验证举例

在用户类中编写生成token和验证网址的链接的方法 generate_verify_email_url,由celery中调用

在用户类中编写验证token的方 法check_verify_email_token,由邮箱验证的视图函数调用

编写视图函数验证邮件

class VerifyEmailView(APIView):
    """邮箱认证"""
    def get(self, request):
        """
        :param request: 可用于获取查询字符串的请求
        :return: {'message': 'OK'}
        """
        # 获取token
        token = request.query_params.get('token')
        if not token:
            return Response({'message': '缺少token'}, status=status.HTTP_400_BAD_REQUEST)
    
        # 验证token
        user = User.check_verify_email_token(token)
        if user is None:
            return Response({'message': '链接信息无效'}, status=status.HTTP_400_BAD_REQUEST)
        else:
            user.email_active = True
            user.save()
    
            return Response({'message': 'ojbk'})

相关文章

网友评论

      本文标题:django中邮箱验证这么写

      本文链接:https://www.haomeiwen.com/subject/wxiifqtx.html