欢迎访问宙启技术站
智能推送

Flask-Mail快速入门指南:在Python中发送电子邮件

发布时间:2023-12-27 04:59:45

Flask-Mail是一个用于在Flask应用程序中发送电子邮件的扩展。它提供了一个简单而灵活的方法来发送邮件,并且集成了常见的电子邮件服务提供商,如Gmail、Yahoo和Hotmail等。

在本快速入门指南中,我将向您展示如何在Python中使用Flask-Mail发送电子邮件,并提供一个简单的使用例子。

首先,您需要安装Flask-Mail扩展。可以使用以下命令来安装它:

pip install Flask-Mail

安装完成后,您需要在Flask应用程序中进行配置。打开您的应用程序配置文件(例如config.py)并添加以下配置:

# 邮件配置
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_SSL = True
MAIL_USERNAME = 'your-email@gmail.com'
MAIL_PASSWORD = 'your-email-password'
MAIL_DEFAULT_SENDER = 'your-email@gmail.com'

请确保更改上述配置中的邮件服务器、用户名和密码为您自己的信息。

接下来,在Flask应用程序中初始化Flask-Mail扩展:

from flask import Flask
from flask_mail import Mail

app = Flask(__name__)
mail = Mail(app)

app.config.from_pyfile('config.py')

现在您已完成配置和初始化,可以开始发送电子邮件了。以下是一个简单的例子,演示如何使用Flask-Mail发送电子邮件:

from flask import Flask, render_template, request, flash, redirect, url_for
from flask_mail import Mail, Message

app = Flask(__name__)
app.config.from_pyfile('config.py')
mail = Mail(app)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/send-email', methods=['POST'])
def send_email():
    name = request.form.get('name')
    email = request.form.get('email')
    message = request.form.get('message')

    msg = Message(subject='New Message from Flask-Mail',
                  body=f'Name: {name}
Email: {email}
Message: {message}',
                  sender=app.config.get('MAIL_DEFAULT_SENDER'),
                  recipients=[app.config.get('MAIL_USERNAME')])

    mail.send(msg)
    flash('Email sent successfully!')
    return redirect(url_for('index'))

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

在上述例子中,我们创建了一个简单的Flask应用程序,其中包含一个表单页面(index.html)和一个用于发送电子邮件的路由(send_email)。当用户填写表单并提交后,我们将从表单中获取姓名、电子邮件和消息,并使用Flask-Mail发送电子邮件。

请确保在您的应用程序模板(index.html)中包含一个表单,用于用户输入信息。

运行应用程序后,您可以通过访问http://localhost:5000来访问应用程序并测试邮件发送功能。

这就是使用Flask-Mail在Python中发送电子邮件的简单入门指南和使用例子。Flask-Mail 提供了更多高级功能,如附件发送、HTML内容和邮件模板等。您可以在官方文档中查找更多信息和示例。