📜  flask_mail (1)

📅  最后修改于: 2023-12-03 15:30:47.221000             🧑  作者: Mango

Flask-Mail介绍

Flask-Mail 是一个用于在 Flask 中发送电子邮件的扩展程序,它允许你轻松地在你的 Flask 应用程序中发送电子邮件。它提供了一个简单而强大的界面,使开发人员能够轻松地把电子邮件集成到他们的 Flask 应用程序中。

安装

要安装 Flask-Mail,可以使用 pip 命令轻松安装:

$ pip install flask-mail
使用

在你的 Flask 应用程序中集成 Flask-Mail 是非常容易的。首先,你需要创建一个 Flask-Mail 对象,并设置配置。下面是一个使用 Gmail SMTP 服务器发送电子邮件的示例:

from flask_mail import Mail, Message
from flask import Flask

app = Flask(__name__)

app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'your-email@gmail.com'
app.config['MAIL_PASSWORD'] = 'your-email-password'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True

mail = Mail(app)

@app.route("/")
def index():
   msg = Message('Hello', sender = 'your-email@gmail.com', recipients = ['recipient-email@gmail.com'])
   msg.body = "Hello Flask message sent from Flask-Mail"
   mail.send(msg)
   return "Sent"

if __name__ == '__main__':
   app.run(debug = True)

在这个例子中,我们首先创建了一个 Flask 应用程序对象,然后设置了 SMTP 服务器和认证凭据等配置。我们还创建了一个 Mail 对象,并将应用程序实例传递给它。然后,我们定义了一个根路径路由,它将向收件人发送一条电子邮件。

Flask-Mail 配置

下面是一些常用的配置选项:

  • MAIL_SERVER:SMTP 服务器
  • MAIL_PORT:SMTP 端口
  • MAIL_USE_TLS:是否使用 TLS 协议
  • MAIL_USERNAME:SMTP 认证用户名
  • MAIL_PASSWORD:SMTP 认证密码
  • MAIL_DEFAULT_SENDER:默认发件人
Flask-Mail 消息

Flask-Mail 的 Message 对象用于创建电子邮件消息。这个对象包含以下属性:

  • recipients:收件人的电子邮件地址列表
  • body:电子邮件正文
  • subject:电子邮件主题
发送邮件

要发送一封电子邮件,你可以创建一个 Message 对象,填写接收者、主题和正文,然后将 Message 对象传递给 Mail.send() 方法。

from flask_mail import Mail, Message

mail = Mail(app)

msg = Message('Hello', sender = 'example@example.com', recipients = ['recipient@example.com'])
msg.body = "Hello Flask message sent from Flask-Mail"
mail.send(msg)
对象垃圾回收

Flask-Mail 的消息对象是继承了 Python 标准库中 email.message.Message 的,从而可能会导致内存泄漏,为了避免这种情况,我们可以在发送电子邮件后手动销毁消息对象:

msg = Message('...', sender='...', recipients=['...'])
mail.send(msg)
del msg
结束语

Flask-Mail 可以方便地在 Flask 应用程序中集成电子邮件功能。使用 Flask-Mail,你可以轻松地发送电子邮件,并在需要时灵活地配置和自定义电子邮件消息。