Bootstrap

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

关于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)

程序效果:

2、安装

pip install flask-mail

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

服务器名称服务器地址SSL协议端口号非SSL协议端口号
IMAPimap.qq.com993143
SMTPsmtp.qq.com465/58725
POP3pop.qq.com995110

 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: 邮件账户密码。

;