用户邮箱激活步骤
以下代码中用的是网易的邮箱验证,需要对网易邮箱进行一点点操作
- 打开网易设置中的授权码
- 打开POP3/SMTP/IMAP设置
- 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",
}
}
}
- 当用户点击注册后,邮箱激活后端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'))