方式一:使用Flask-Mail
web程序发送电子邮件借助Flask-Mail扩展只需要几行代码就可以实现。
Flask-Mail库包装了Python标准库中的smtplib包,简化了在Flask程序中发送电子邮件的过程。
首先要实例化Mail类,并传入程序实例以完成初始化。
from flask_mail import Mail
app = Flask(__mail__)
mail = Mail(app)
配置Flask-Mail
flask-mail通过连接SMTP服务器来发送邮件,因此在开始发送邮件前需要配置SMTP服务器。常用的Flask-Mail配置变量如下表。
配置变量 | 说明 |
---|---|
MAIL_SERVER | 用于发送邮件的SMTP服务器 |
MAIL_PORT | 发信端口 |
MAIL_USE_TLS | 是否使用startTLS |
MAIL_USE_SSL | 是否使用SSL/TLS |
MAIL_USERNAME | 发信服务器的用户名 |
MAIL_PASSWORD | 发信服务器的密码 |
MAIL_DEFAULT_SENDER | 默认的发信人 |
随着配置项增多,改用app.config对象的update方法来加载配置,如下代码所示。
import os
from flask import Flask
from flask_mail import Mail
app = Flask(__name__)
app.config.update(
...
MAIL_SERVER=os.getenv('MAIL_SERVER"),
MAIL_PORT=581,
MAIL_USE_TLS=True,
MAIL_USERNAME=os.getenv('