傳送郵箱驗證碼進行註冊驗證

2021-10-06 14:33:20 字數 2302 閱讀 3119

一、流程圖

操作思路

進行郵箱驗證碼驗證 比較與輸入的驗證碼 是否一致 一致的話則可以註冊

二、**示例

(1)生成隨機驗證碼

def

get_random_str()

:# 驗證碼是由 字母a~z a~z 數字 0~9 組成

# 在 ascii 碼中 小寫a的起點是97 大寫a起點是65

num_ =

[str

(var)

for var in

range(0

,9)]

# 數字的

# 使用sample 在列表中隨機生成6個任意字母數字

return

''.join(random.sample(num_,4)

)

(2)傳送郵箱驗證碼

#定義引數

my_mail=

'你自己的[email protected]'

#授權碼

my_pass=

'你自己的授權碼'

#定義傳送郵件的方法

class

send_emailcode

(apiview)

:def

post

(self,request)

: email = request.data.get(

'email'

)# 接收到使用者的郵箱

print

(email)

subject =

'驗證碼驗證服務'

code = get_random_str(

)#生成驗證碼

content =

'您的驗證碼是%s,有限期為1分鐘'

%code

res =

token = r.get(email)

if token:

# 去redis 中檢視 是否這個郵箱

res[

'code']=

401 res[

'message']=

"請一分鐘後再次傳送"

print

(token)

return jsonresponse(res)

else

:#宣告郵件物件

msg = mimetext(content,

'plain'

,'utf-8'

)#設定傳送方物件

msg[

'from'

]= formataddr(

[,my_mail]

)#設定收件方物件

msg[

'to'

]= formataddr(

['尊敬的客戶'

,email]

)#設定標題

msg[

'subject'

]= subject

#設定smtp伺服器

server = smtplib.smtp_ssl(

"smtp.qq.com"

,465

)#登入郵箱

server.login(my_mail,my_pass)

#傳送郵件

server.sendmail(my_mail,

[email]

,msg.as_string())

#關閉smtp鏈結

server.quit(

) r.

set(email,code)

# 儲存到redis

# 設定訪問週期為60秒

r.expire(email,

6000

) res[

'code']=

200 res[

'message']=

"驗證碼已傳送"

res[

'or'

]= r.get(email)

return jsonresponse(res)

ps:1.此處封裝方法,呼叫是直接呼叫,隱藏授權碼,防止自己資訊暴露

ps:2.將生成的驗證碼存入redis資料庫中 進行比較

tp5註冊郵箱驗證碼,自動傳送郵件

將準備好的smtp擴充套件類放入extend util資料夾下 在控制器中引入smtp use util smtp 在方法中新增傳送 1.配置引數 smtp伺服器 smtpserver smtp.qq.com smtp伺服器端口 smtpserverport 25 smtp伺服器的使用者郵箱 smt...

向郵箱傳送驗證碼去驗證郵箱或者密碼等等

1.首先向郵箱傳送乙個驗證碼,其實向其他郵箱傳送乙份郵件比較簡單,主要是要驗證這個驗證碼 假設郵箱能收到驗證 重新傳送啟用郵件 member member userconext.getcurrentmember if member null member membermanager.get memb...

註冊登入驗證碼

1 判斷是不是手機號 public boolean ismobileno string mobiles matcher m p.matcher mobiles return m.matches 2 判斷密碼格式是否正確 public boolean iscorrectpassword string ...