该方法使用了Python的smtplib第三方库,需要保证发送者的QQ邮箱开通了SMTP(一种电子邮件传输协议)服务。
在QQ邮箱的设置→账户→POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务处开启
开启后,可以在下方获取授权码
至此,准备工作已完成,接下来开始尝试发送邮箱。
该方法可用在登录验证时使用,做一些个人的小项目或者大作业实验之类等等。
data里的信息可根据实际情况进行更改,在上面的授权码需要复制至data中的password处(注意:发送者的邮箱需和授权码对应。)
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.header import Header
import random
data = {
'sender':"[email protected]",
'password':"xxxxxxxxxxxxx",
'subject':"xxx验证码",
class SendEmail:
def __init__(self, data,receiver):
self.sender = data.get('sender','')
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_code
def send_email(self):
message,verification_code = self.load_message()
smtp = SMTP_SSL("smtp.qq.com")
smtp.login(self.sender, self.password)
smtp.sendmail(self.sender, self.receiver, message.as_string())
return verification_code
def generate_verification(self):
random_list = list(map(lambda x:random.randint(0,9),[y for y in range(6)]))
code = "".join('%s' % i for i in random_list)
return code
verification = SendEmail(data=data,receiver='[email protected]').send_email()
print(verification)
>>> 445571
最终效果:
最好加上发送验证码的时间间隔和验证码有效时间的设计,避免出现点一下就发送一次和验证码一直不过期的情况。。。
#发送多种类型的邮件
from email.mime.multipart import MIMEMultipart
msg_from = '[email protected]' # 发送方邮箱
passwd = 'xxx' #就是上面的授权码
to= ['15
其实Python使用QQ邮箱发送Email代码很简单,短短几行代码就可以实现这个功能。
使用到的模块有smtplib和email这个两个模块,关于这两个模块的方法就不多说了。不了解的朋友们可以查看这篇文章:python中使用smtplib和email模块发送邮件实例
我们先说说网上常用的使用这那两个模块发送邮件的方法
代码如下:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
def SendEmail(fromAdd, toAdd, subject, atta
这个例子中我们实现了两个功能:菜单按钮、带倒计时的按钮(账户注册的时候经常会碰到)。
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QMenu
from PyQt5.QtCore import QTimer
import sys
class Example(QWidget):
def __...
服务器计算数据有时需要大量的时间,
使用程序
发送一封邮件是一种免费便捷的通知方式,可以让我们及时收到程序中断或者程序运行完成的信息,而不用一直盯着屏幕看。以下以
python为例写一个邮件
发送程序:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
class Mail(object):
def __init__(self,user,token):
self.host = smtp.qq.com #
qq邮箱服务器地址
self.user = user
用Python发送126邮件,供大家参考,具体内容如下
今天想做个自动化邮件提醒的功能,最近刚好在学习python,都说python那么强大,想试一下python能否搞定,搜一下资料,果真可以,而且又简单通俗易懂
from email.mail.text import MIMEText
import smtplib
#发件人列表
to_list=["[email protected]", "[email protected]"]
#对于大型的邮件服务器,有反垃圾邮件的功能,必须登录后才能发邮件,如126,163
mail_server="smtp.126.com" # 126的邮件服务器
mail_l
app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.qq.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = '
[email protected]' # 替换为你的 QQ 邮箱
app.config['MAIL_PASSWORD'] = 'your_email_password' # 替换为你的 QQ 邮箱密码
mail = Mail(app)
4. 创建
发送邮件的函数,其中包括生成
验证码的逻辑:
```
python
import random
def generate_code():
code = ''
for i in range(6):
code += str(random.randint(0, 9))
return code
def send_email(email):
code = generate_code()
message = Message(subject='
验证码', recipients=[email])
message.body = f'您的
验证码是:{code}'
mail.send(message)
return code
5. 在 Flask 应用中定义路由,调用
发送邮件的函数:
```
python
from flask import request
@app.route('/send_code', methods=['POST'])
def send_code():
email = request.form.get('email')
code = send_email(email)
return {'code': code}
以上代码中,`/send_code` 路由接收来自前端的邮箱地址,调用 `send_email` 函数
发送验证码,并将
验证码返回给前端。
当用户在前端输入
验证码后,你可以在 Flask 应用中编写逻辑进行验证。