Python3实现发送邮件验证码功能
这个其实非常简单
首先我们需要有一个QQ邮箱,然后进入QQ邮箱,点击设置

点击账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,并将图片中的服务开启


之后就会获取到一个QQ邮箱获取授权码
之后进入我们的django中,在setting中配置以下代码
1 2 3 4 5 6 7 8
| EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.qq.com' EMAIL_PORT = 465 EMAIL_HOST_USER = 'xxxxxxxxxxx@qq.com' EMAIL_HOST_PASSWORD = 'xxxxxxxxxxx' DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
CORS_ORIGIN_ALLOW_ALL = True
|
之后在我们需要使用的文件中导入
1 2 3
| from django.core.mail import send_mail from django_test.settings import DEFAULT_FROM_EMAIL from django_test.settings import EMAIL_HOST_USER
|
写一个随机验证码demo
1 2 3 4 5 6 7 8 9
| def get_random_str(): a_ = [chr(var) for var in range(97, 123)] A_ = [chr(var) for var in range(65, 91)] num_ = [str(var) for var in range(0, 9)] return ''.join(random.sample(a_ + A_ + num_, 6))
|
接下来就是发送邮件的代码
1 2 3 4 5 6 7 8 9 10 11 12
| class EmailVerify(APIView): def post(self, request): email = request.data.get('email') token = get_random_str() print(token) subject = '通过邮箱找回密码!!' message = '你的验证码是:%s' % token send_mail(subject, message, DEFAULT_FROM_EMAIL, [email]) res['code'] = 200 res['message'] = "验证码已发送" return JsonResponse(res)
|
这样就可以实现QQ邮箱发送验证码了