600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Python使用QQ邮箱发送验证码

Python使用QQ邮箱发送验证码

时间:2022-08-04 18:00:42

相关推荐

Python使用QQ邮箱发送验证码

向指定对象发送验证码

在做一些个人的demo或者实战项目等,涉及登录验证的,可以通过该方式实现一个简易的邮箱发送验证码。

该方法使用了Python的smtplib第三方库,需要保证发送者的QQ邮箱开通了SMTP(一种电子邮件传输协议)服务。

在QQ邮箱的设置→账户→POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务处开启

开启后,可以在下方获取授权码

至此,准备工作已完成,接下来开始尝试发送邮箱。

该方法可用在登录验证时使用,做一些个人的小项目或者大作业实验之类等等。

data里的信息可根据实际情况进行更改,在上面的授权码需要复制至data中的password处(注意:发送者的邮箱需和授权码对应。)

from smtplib import SMTP_SSLfrom email.mime.text import MIMETextfrom email.header import Headerimport randomdata = {'sender':"111111111@", # 发送者邮箱,自己用可写死'password':"xxxxxxxxxxxxx", # 在开启SMTP服务后,可以生成授权码,此处为授权码'subject':"xxx验证码", # 邮件主题名,没有违规文字都行}class SendEmail:def __init__(self, data,receiver):self.sender = data.get('sender','') # 发送者QQ邮箱self.receiver = receiver # 接收者邮箱self.password = data.get('password','')self.subject = data.get('subject','')def load_message(self):verification_code = self.generate_verification()text = f'验证码为:{verification_code}'message = MIMEText(text, "plain", "utf-8") # 文本内容,文本格式,编码message["Subject"] = Header(self.subject, "utf-8") # 邮箱主题message["From"] = Header(self.sender, "utf-8") # 发送者message["To"] = Header(self.receiver, "utf-8") # 接收者return message,verification_codedef send_email(self):message,verification_code = self.load_message()smtp = SMTP_SSL("") #需要发送者QQ邮箱开启SMTP服务smtp.login(self.sender, self.password)smtp.sendmail(self.sender, self.receiver, message.as_string())return verification_code# 生成6位随机数验证码def generate_verification(self):random_list = list(map(lambda x:random.randint(0,9),[y for y in range(6)])) # 这里使用map函数跟lambda匿名函数来生成随机的六位数code = "".join('%s' % i for i in random_list)return code#调用#receiver里放上发送对象的邮箱verification = SendEmail(data=data,receiver='xxxxxxxxx@').send_email()print(verification)>>> 445571

最终效果:

最好加上发送验证码的时间间隔和验证码有效时间的设计,避免出现点一下就发送一次和验证码一直不过期的情况。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。