扩展第三方邮件服务, 通过SMTP服务来发送邮件
pip install flask-mail
from flask_mail import Mail app = Flask(__name__) ... mail = Mail(app)
STARTTLS 是另一种加密方式,会对不安全的连接进行升级(使用SSL或者TLS),
MAIL_USE_TLS = True MAIL_PORT = 587
SSL/TLS加密
MAIL_USE_SSL = True MAIL_PORT = 465
163 SMTP不支持STARTTLS, 需要使用SSL/TLS
对于需要发送大量事务性邮件,使用自己配置的SMTP或者Send Grid, Mailgun等
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 = 587 MAIL_USE_TLS = True MAIL_USERNAME = os.getenv('MAIL_USERNAME') MAIL_PASSWORD = os.getenv('MAIL_PASSWORD') MAIL_DEFAULT_SENDER = ('Rick Xu', os.getenv('MAIL_USERNAME')) ) mail = Mail(app)
from flask_mail import Mail, Message ... mail = Mail(app) ... def send_mail(subject, to, body): message = Message(subject, recipients=[to], body=body) mail.send(message)
@app.route('/subscribe', methods=["GET", "POST"]) def subscribe(): form = SubscribeForm() if form.validate_on_submit(): email = form.email.data flash('Welcome you') send_email("Subscribe Success!", email, 'Hello, thanks for subscribing') return redirect(url_for('index')) return render_template('index.html', form=form)