项目中不可避免需要使用邮箱认证,如果使用flask则可以利用Flask-Mail来实现。
Flask-Mail 扩展提供了一个简单的接口,可以在 Flask 应用中设置 SMTP 使得可以在视图以及脚本中发送邮件信息。
开启qq邮箱SMTP服务
这里我利用的qq邮箱的SMTP服务,所以首先需要先开启该服务并获得授权码。在qq邮箱 “邮箱设置 — 账户”里找到下图位置,开启SMTP服务。
之后手机验证什么的依自己帐号设置,验证成功后会获得一个授权码,这个需要保存后续发送邮箱时密码就填这个授权码。
安装Flask-Mail
pip install Flask-Mail
配置Flask-Mail
配置项 | 默认值 | 功能 |
---|---|---|
MAIL_SERVER | localhost | 邮箱服务器 |
MAIL_PORT | 25 | 端口 |
MAIL_USE_TLS | False | 是否使用TLS |
MAIL_USE_SSL | False | 是否使用SSL |
MAIL_DEBUG | app.debug | 是否为DEBUG模式,打印调试消息 |
MAIL_SUPPRESS_SEND | app.testing | 设置是否真的发送邮件,True不发送 |
MAIL_USERNAME | None | 用户名,填邮箱 |
MAIL_PASSWORD | None | 密码,填授权码 |
MAIL_DEFAULT_SENDER | None | 默认发送者,填邮箱 |
MAIL_MAX_EMAILS | None | 一次连接中的发送邮件的上限 |
MAIL_ASCII_ATTACHMENTS | False | 如果 MAIL_ASCII_ATTACHMENTS 设置成 True 的话,文件名将会转换成 ASCII 的。一般用于添加附件。 |
邮件是通过一个 Mail 实例进行管理:
from flask import Flask
from flask_mail import Mail
app = Flask(__name__)
# ...
app.config['MAIL_SERVER'] = 'smtp.qq.com'
app.config[<