Django实现邮箱激活

用户邮箱激活步骤

以下代码中用的是网易的邮箱验证,需要对网易邮箱进行一点点操作

  1. 打开网易设置中的授权码
    在这里插入图片描述
  2. 打开POP3/SMTP/IMAP设置
    在这里插入图片描述
  3. settings中进行配置
# 配置邮箱
EMAIL_HOST='smtp.163.com'
EMAIL_HOST_PASSWORD='xxxxxx'
EMAIL_HOST_USER='sms175351@163.com'
EMAIL_PORT = 25

# 配置redis
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://ssss.top:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}
  1. 当用户点击注册后,邮箱激活后端Django-views中代码
# 用户注册函数
def register(request):
    if request.method == 'GET':
        print('---------------')
        return render(request, 'user/register.html')
    else:
        username = request.POST.get('username')
        email = request.POST.get('email')
        phone = request.POST.get('phone')
        password = request.POST.get('password')
        icon = request.FILES.get('icon')
        print(icon)
        password = make_password(password)

        user = User.objects.create(username=username, email=email, phone=phone, icon=icon, password=password)

        if user:
            # 产生随机数 跟用户绑定 ,然后发送邮件
            print('++++++++++++++')
            token = uuid.uuid4().hex  # 获取随机数
            # user.id --- token  redis
            cache.set(token, user.id, timeout=60 * 60 * 24)
            # 发送邮件
            message = "请点击此链接进行用户激活: <a href='http://127.0.0.1:8000/axfapp/active/?token=" + token + "'>点击激活</a>"
            print(message)
            send_mail('用户激活邮件', message='', html_message=message, from_email=EMAIL_HOST_USER,
                      recipient_list=[EMAIL_HOST_USER, 'qq163645153@163.com'])
            # recipient_list 是收件人列表,from_email是发件人,message是纯文本,html_message是html语法的内容
            return redirect(reverse('axfapp:login'))
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值