測試 獲取驗證碼
import smtplib from email.mime.text import MIMEText from email.utils import formataddr #定義參數 my_mail = "2501186626@qq.com" #授權碼 my_pass = "qnxrmxwxlyzoeadc" #定義發送郵件的方法 def mail(subject,content,mailaddr): #聲明郵件對象 msg = MIMEText(content,'plain','utf-8') #設置發送方對象 msg['From'] = formataddr(['在線教育平台',my_mail]) #設置收件方對象 msg['To'] = formataddr(['尊敬的客戶',mailaddr]) #設置標題 msg['Subject'] = subject #設置smtp服務器 server = smtplib.SMTP_SSL("smtp.qq.com",465) #登錄郵箱 server.login(my_mail,my_pass) #發送郵件 server.sendmail(my_mail,[mailaddr],msg.as_string()) #關閉smtp鏈接 server.quit() mail('驗證碼驗證服務','您的驗證碼是6666,有限期為2分鍾','164850527@qq.com')
獲取qq驗證碼接口
class Main(APIView): def post(self,request): my_mail=request.data.get('email') mailaddr=my_mail my_pass = "qnxrmxwxlyzoeadc" subject='驗證碼驗證服務' import random content='%06d' % random.randint(0, 999999) # 隨機6位驗證碼 msg = MIMEText(content, 'plain', 'utf-8') # 設置發送方對象 msg['From'] = formataddr(['在線教育平台', my_mail]) # 設置收件方對象 msg['To'] = formataddr(['尊敬的客戶', mailaddr]) # 設置標題 msg['Subject'] = subject # 設置smtp服務器 server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 登錄郵箱 server.login(my_mail, my_pass) # 發送郵件 server.sendmail(my_mail, [mailaddr], msg.as_string()) # 關閉smtp鏈接 server.quit() redis_client = get_redis_connection('default') # 指定設置 redis 庫 redis_client.setex(my_mail, 60 * 5, content) # 通過鍵 和有效時間 存儲驗證碼 return Response({'msg':'ok','code':'發送成功',})
setting 配置 redis 數據庫
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } }
獲取redis 驗證碼
from django_redis import get_redis_connection redis_client = get_redis_connection('default') # 指定數據庫 redis_code=redis_client.get(email) # phone:code # 獲取數據 if redis_code: redis_code= redis_code.decode() if not code ==redis_code: return Response({'msg':'驗證碼不正確'})