关于Flask 邮件发送功能的代码实现,很多文章讲得并不清楚,往往学习视频才能讲清楚,我在这里出一个简单实例,直接告诉你各个配置具体对应的是什么意思以及如何获取。

1、实例

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.qq.com'  # 邮件服务器地址,这个不需要改
app.config['MAIL_PORT'] = 465  # 邮件服务器端口,这个不需要改
app.config['MAIL_USERNAME'] = '你的QQ邮箱号'
app.config['MAIL_PASSWORD'] = '到你的QQ邮箱主页,点击设置,账户,开启SMTP服务,发送短信即可获得授权码,填在这里'
app.config['MAIL_USE_SSL'] = True  # 启用 SSL
app.config['MAIL_DEFAULT_SENDER'] = '你的QQ邮箱号'  # 设置默认用来发送邮件的邮箱,建议和MAIL_USERNAME保持一致
mail = Mail(app)


@app.route('/')
def index():
    msg = Message(subject='Mail Test', recipients=['写一个你要发送邮件的接收方邮箱号,可以用你自己其他的邮箱来测试'], body="这是一封测试邮件。")
    mail.send(msg)
    return "邮件已成功发送!"


if __name__ == '__main__':
    app.run(debug=True)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

程序效果:

Flask 邮件发送实例(代码直接可用)_python

2、安装

pip install flask-mail
  • 1.

3、服务器地址和端口信息汇总

服务器名称

服务器地址

SSL协议端口号

非SSL协议端口号

IMAP

imap.qq.com

993

143

SMTP

smtp.qq.com

465/587

25

POP3

pop.qq.com

995

110

 4、参数信息

  • MAIL_DEBUG:支持自定义调试,默认是Flask应用程序的调试状态;
  • MAIL_SERVER: 电子邮件服务器的ip地址;
  • MAIL_PORT: 电子邮件服务器端口;(默认不加密为25)
  • MAIL_DEFAULT_SENDER:设置默认发件人;
  • MAIL_MAX_EMAILS:设置要发送的最大邮件;
  • MAIL_SUPPRESS_SEND: 如果app.testing设置为true,则发送被抑制;
  • MAIL_ASCII_ATTACHMENTS: 如果设置为true,则将附加的文件名转换为ASCII;
  • MAIL_USE_TLS:是否使用TLS加密;
  • MAIL_USE_SSL:是否使用SSL加密;
  • MAIL_USERNAME: 邮件账户名;
  • MAIL_PASSWORD: 邮件账户密码。