Flask发送邮件配置

1.安装 pip install Flask-Mail

from flask import Flask
from flask_mail import Mail

app = Flask(__name__)
# ...
app.config['MAIL_SERVER'] = 'smtp.qq.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USERNAME'] = '[email protected]'
app.config['MAIL_PASSWORD'] = '填授权码'
# ...
mail = Mail(app)
from flask_mail import Message
msg = Message(subject="Hello World!",
              sender="[email protected]",  # 发件人
              recipients=["[email protected]"]  # 收件人)
"""
subject为邮件标题。 
sender为发送方,如果你设置了 “MAIL_DEFAULT_SENDER”,就不必再次填写发件人,默认情况下将会使用配置项的发件人。 
recipients为接收方,可以设置一个或者多个收件人,也可以后续再添加。
msg.recipients = ["[email protected]"]
msg.add_recipient("[email protected]")
如果 sender 是一个二元组,它将会被分成姓名和邮件地址:

msg = Message("Hello",
              sender=("Me", "[email protected]"))
邮件内容可以包含主体以及/或者 HTML:
msg.body = "testing"
msg.html = "testing"
最后,发送邮件的时候请使用 Flask 应用设置的 Mail 实例:

mail.send(msg)
"""

大量邮件

通常在一个 Web 应用中每一个请求会同时发送一封或者两封邮件。在某些特定的场景下,有可能会发送数十或者数百封邮件,不过这种发送工作会给交离线任务或者脚本执行。

在这种情况下发送邮件的代码会有些不同:

with mail.connect() as conn:
    for user in users:
        message = '...'
        subject = "hello, %s" % user.name
        msg = Message(recipients=[user.email],
                      body=message,
                      subject=subject)

        conn.send(msg)

与电子邮件服务器的连接会一直保持活动状态直到所有的邮件都已经发送完成后才会关闭(断开)。

你可能感兴趣的:(Flask发送邮件配置)