在django中使用邮箱模块,搭建邮箱系统发送验证码

该博客介绍了如何在Django项目中实现邮件发送功能,包括通过QQ邮箱获取授权码,创建`email.py`文件定义发送邮件的类,以及编写发送验证码的函数。邮件发送过程涉及SMTP服务器配置,并将验证码保存到Redis数据库中,设置了验证码的有效期。
摘要由CSDN通过智能技术生成

1、到QQ邮箱中,获取授权码

 2、往下拉,启动服务

3、发送学习,获取授权码

二、django项目中

1、写一个email.py文件存放发送邮箱的类

import smtplib
from email.header import Header
from email.mime.text import MIMEText
class Send_mail(object):
    '''发送邮件'''
    def __init__(self,sender,passward,receivers):
        self.sender=sender
        self.password=passward
        self.receivers=receivers


    def send(self,ShowText,Name,Header_show):
        '''
        :param ShowText: 发送内容
        :param Name: 发送者
        :param Header_show: 发送文件抬头
        :return:
        '''
        message = MIMEText('%s'%(ShowText), 'plain', 'utf-8')
        message['From'] = Header("%s"%(Name), 'utf-8')
        message['To'] = Header(self.receivers)
        message['Subject'] = Header("%s"%(Header_show),'utf-8')
        smtpObj=smtplib.SMTP('smtp.qq.com')
        smtpObj.set_debuglevel(1)
        smtpObj.login(self.sender,self.password)
        smtpObj.sendmail(self.sender,self.receivers,message.as_string())
        smtpObj.quit()

2、写一个函数,直接调用就发送邮件

def send_email(recv,code,timeout=5*60):
    import redis 
    from luffyapi.utils import email #导入email模块
    email_obj = email.Send_mail(sender='获取到授权码的邮箱', passward='授权码', receivers=recv)
    name = 'xxx网站'
    text = f'您的验证码是:{code}'
    head = 'xxx网站验证码:若非本人操作,请忽略此消息!!'
    email_obj.send(Name=name, ShowText=text, Header_show=head)
    #将验证码保存到redis数据库中,将db15作为保存验证码的专门数据库
    r = redis.Redis(host='127.0.0.1', port=6379, decode_responses=True,db=15)
    key = 'LWHGS'+str(recv)#以字符串拼接上邮箱名设为key值
    r.set(key,str(code),ex=timeout) #将验证码保存到redis中,设置过期时间
    return True

3、使用:

直接调用步骤3中的函数

send_email('用户的邮箱地址','发送给用户的验证码')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值