python编程django中的邮箱验证码功能

 话不多说,先放上核心代码,生成邮箱验证码和发送邮箱验证码,我这里根据的项目需求,我写了三种验证码的需求,具体使用方法自己可以解决,代码很简单。

生成code的时候,我使用了两种方法,一个choice和randrange两种,代码部分没有删除,其中一种即可。

from users.models import EmailVerifyCode
# from random import choice
from random import randrange
from django.core.mail import send_mail
from guliedu.settings import EMAIL_FROM

# 生成code
def get_random_code(code_length):
    code_source = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
    code = ''
    for i in range(code_length):
        # 随机选择一个字符
        # code +=choice(code_source)
        str = code_source[randrange(0, len(code_source) - 1)]
        code += str
    return code

# 发送邮件
def send_email_code(email, send_type):
    # 第一步,创建邮箱验证码对象,保存数据库,用来以后做对比
    code = get_random_code(8)
    a = EmailVerifyCode()
    a.email = email
    a.send_type = send_type
    a.code = code
    a.save()

    # 第二部:正式的发邮件功能
    send_title = ''
    send_body = ''
    if send_type == 1:
        send_title = '欢迎注册:'
        send_body = '请点击一下链接进行激活您的账号:\n http://127.0.0.1:8000/users/user_activate/' + code
        send_mail(send_title, send_body, EMAIL_FROM, [email])

    # 忘记密码
    if send_type == 2:
        send_title = '密码重置:'
        send_body = '请点击一下链接进行重置您的账号密码:\n http://127.0.0.1:8000/users/user_reset/' + code
        send_mail(send_title, send_body, EMAIL_FROM, [email])

        # 忘记密码
    if send_type == 3:
        send_title = '更换邮箱:'
        send_body = '请点击一下链接进行重置您的邮箱:\n http://127.0.0.1:8000/users/user_mail_reset/' + code
        send_mail(send_title, send_body, EMAIL_FROM, [email])
上面的代码写好之后,需要对setting里的文件配置进行设置,具体如下,我使用的是163邮箱,在setting里面写上这个一段代码,就行了
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = 'zutyang@163.com'
EMAIL_HOST_PASSWORD = '这里写密码,我的就不写出来了'
EMAIL_FROM = 'zutyang@163.com'

发送代码的时候,可能会有一些邮箱权限的问题,那个问题搜一下就可以解决,代码写的时间久了,反正这些代码是没有错误的。邮箱收到的邮件格式如图,点击链接就可以进去了。

有问题留言就行。看到就会回复,或者发邮件到我的邮箱里。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值