hand
_1_1_16
4
python3.X - Web - Flask1.1.1
共46篇
python3.X - Web - Flask1.1.1
返回栏目
0k
0.3k
1k
6k
0.6k
0.8k
0.3k
0.1k
0.2k
0.8k
0.6k
0.6k
0.1k
0.5k
0.2k
2k
0.3k
5k
2k
2k
1k
0.3k
1k
0.1k
1k
1k
0.5k
2k
2k
0.7k
1k
2k
0.1k
1k
0.1k
2k
2k
0.9k
5k
4k
1k
1k
3k
1k
0k
0k
返回python3.X - Web - Flask1.1.1栏目
作者:
贺及楼
成为作者
更新日期:2024-10-28 17:30:57
作用:可以发邮件
Python 的 Flask-Mail
是一个非常实用的 Flask 扩展库,它提供了一个简单易用的接口来发送电子邮件。以下是 Flask-Mail
的一些主要作用和特点:
Flask-Mail
可以发送纯文本邮件和HTML邮件,支持添加附件和嵌入图片。Flask-Mail
支持异步发送邮件,提高了应用程序的响应性能。Flask-Mail
会自动处理邮件头,防止 header injection 攻击。Flask-Mail
支持信号量,可以在邮件发送时触发自定义的信号处理函数。使用 Flask-Mail
,开发者可以在 Flask 应用程序中轻松地添加邮件发送功能,无论是用户注册确认、密码重置通知,还是日常的系统通知,都可以通过 Flask-Mail
来实现。通过简单的配置和几行代码,就可以发送邮件,极大地提高了开发效率和用户体验。
此处事例理解:Chrome浏览器 — 本地有联网环境 — SSL(必要) — QQ邮箱发送
设置浏览器,让Chrome可以在本地发送
设置Chrome的快捷方式属性,在“目标”后面加上 —allow-file-access-from-files,注意前面有个空格,重新打开Chrome即可。
--allow-file-access-from-files
只能通过终端打开浏览器:打开终端,输入下面命令:open -a “Google Chrome” —args —disable-web-security然后就可以屏蔽安全访问了[ —args:此参数可有可无]
open -a "Google Chrome" --args --disable-web-security
SendData(data);//调用
function SendData(data) {//方法
$.ajax({
url:"abc.com/text1",
type:'get',
dataType:"text",
data:{
"data":data,//发送的东西
},
success:function(data){
//成功之后
},
error:function(jqXHR){
}
})
}
设置 — 账户 — POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启POP3/SMTP服务和IMAP/SMTP服务
正常来说只需要SMTP就可以,不行的话两个都开
获得密码 — 复制
pip install flask-mail
包 | 包中文名 | 释义 | 跳转 |
---|---|---|---|
Flask-Mail==0.10.0 | / | / | |
├── blinker [required: Any, installed: 1.8.2] | / | blinker 是一个小巧的 Python 库,用于实现对象之间的信号传递。 | / |
└── Flask [required: Any, installed: 3.0.3] | / | 主程序 | / |
├── blinker [required: >=1.6.2, installed: 1.8.2] | / | 同上 | / |
├── click [required: >=8.1.3, installed: 8.1.7] | / | Click是一个Python库,用于创建命令行界面,支持装饰器语法,易于创建命令行应用程序。 | / |
├── itsdangerous [required: >=2.1.2, installed: 2.2.0] | / | itsdangerous是一个Python库,用于安全地传递信任数据,支持签名和加密,常用于Web应用中的会话管理和数据验证。 | / |
├── Jinja2 [required: >=3.1.2, installed: 3.1.4] | / | Jinja2是一个现代且设计友好的Python模板引擎,广泛用于Web应用开发。 | Flask - 扩展 - jinja2 - 模版处理信息 - {{}} |
│ └── MarkupSafe [required: >=2.0, installed: 3.0.1] | / | MarkupSafe 是一个 Python 库,用于安全地处理和转义 HTML 和 XML 标记。 | / |
└── Werkzeug [required: >=3.0.0, installed: 3.0.4] | / | Werkzeug是Python的WSGI工具包,用于开发Web应用程序,提供请求、响应对象和中间件。 | / |
└── MarkupSafe [required: >=2.1.1, installed: 3.0.1] | / | 同上 | / |
.py
from flask import Flask, jsonify, request, url_for,render_template,flash,make_response
from flask_mail import Mail, Message
from threading import Thread
app = Flask(__name__)
## 配置邮件:服务器/端口/安全套接字层/邮箱名/授权码
app.config['MAIL_SERVER'] = 'smtp.qq.com' # 邮箱服务器
## app.config['MAIL_PORT'] = 465 # SSL端口
## app.config['MAIL_USE_SSL'] = True # 重要,qq邮箱需要使用SSL
## app.config['MAIL_USE_TLS'] = False # 不需要使用TLS
app.config['MAIL_PORT'] = 587 # SSL端口,服务器
app.config['MAIL_USE_TLS'] = True # 需要使用TLS,服务器
app.config['MAIL_USERNAME'] = '123456789@qq.com' # 填邮箱
app.config['MAIL_PASSWORD'] = '填授权码' # 填授权码
app.config['MAIL_DEFAULT_SENDER'] = '123456789@qq.com' # 填邮箱,默认发送者
mail = Mail(app) # 然后实例化,Mail对象
## text1发送data2
@app.route("/text1", methods=['GET','POST'])
def text1():
data2 = request.args['data']
print(data2)
msg = Message(subject=发了个啥玩意?, # 主题
sender="123456789@qq.com", # 需要使用默认发送者则不用填
recipients=['111111111@qq.com','222222222@qq.com','333333333@qq.com'],
body=data2,
)
thread = Thread(target=send_async_email, args=[app, msg])
thread.start()
return "ok"
## 异步发送邮件
def send_async_email(app, msg):
with app.app_context():
mail.send(msg)
if __name__ == '__main__':
app.run(host='127.0.0.1',port=8000)#运行在8000端口
参数名称 | 类型 | 说明 |
---|---|---|
subject | string | 主题 |
recipients | list | 收件人邮箱 |
body | string | 主体文本 |
html | string | 主体文本 |
attachments | list | 附件 |
# __init__.py
from flask_mail import Mail, Message
def create_app():
# 配置代码
mail = Mail(app)
# 配置代码
return app
## 使用的.py
from flask_mail import Mail, Message
mail = Mail() # 然后实例化,Mail对象
Email = Blueprint('Email',__name__)
@Email.route("/email", methods=['POST'])
def checkemail():
try:
# 发邮件
msg = Message(subject='主题', # 主题
# sender="", # 需要使用默认发送者则不用填
recipients=['12345678@qq.com'],
body='data',
)
thread = Thread(target=send_async_email, args=[Email, msg])
thread.start()
return jsonify({"data":"ok"})
except:
traceback.print_exc()
return jsonify({"data":"参数要全/失败"})
## 异步发送邮件
def send_async_email(app, msg):
from app import create_app
app = create_app()
with app.app_context():
mail.send(msg)
python3.X - Web - Flask1.1.1
整章节共46节
快分享给你的小伙伴吧 ~