当前位置:   article > 正文

Flask实现发送邮件功能

Flask实现发送邮件功能
邮件服务用途较多,如:注册时验证用户、找回密码、线上程序出现重大bug时触发邮件提醒以及服务器关键数据(CPU、网络、内存)监控提醒等,可以说随处可以用到,下面讲解了一个使用flask_mail实现的邮件发送功能,有完整代码,测试可行。

首先下载依赖库flask_mail
pip install flask_mail

配置信息:
  1. app.config['MAIL_SERVER'] = 'smtp.qq.com'
  2. app.config['MAIL_PORT'] = 587
  3. app.config['MAIL_USE_TLS'] = True
  4. app.config['MAIL_USERNAME'] = 'xxx@qq.com' //邮箱账号
  5. app.config['MAIL_PASSWORD'] = 'xxxx' //QQ邮箱授权码
  6. mail = Mail(app)
注意,password这里填写的不是邮箱密码,而是邮箱授权码,关于QQ邮箱授权码如何获取,可以自行百度。


其他参考配置信息(可选)

配置项默认值功能
MAIL_SERVERlocalhost邮箱服务器
MAIL_PORT25端口
MAIL_USE_TLSFalse是否使用TLS
MAIL_USE_SSLFalse是否使用SSL
MAIL_DEBUGapp.debug是否为DEBUG模式,打印调试消息
MAIL_SUPPRESS_SENDapp.testing设置是否真的发送邮件,True不发送
MAIL_USERNAMENone用户名,填邮箱
MAIL_PASSWORDNone密码,填授权码
MAIL_DEFAULT_SENDERNone默认发送者,填邮箱
MAIL_MAX_EMAILSNone一次连接中的发送邮件的上限
MAIL_ASCII_ATTACHMENTSFalse如果 MAIL_ASCII_ATTACHMENTS 设置成 True 的话,文件名将会转换成 ASCII 的。一般用于添加附件。

一个完整可运行的程序:
  1. # -*- coding: utf-8 -*-
  2. from flask import Flask, request
  3. from flask_script import Manager, Shell
  4. from flask_mail import Mail, Message
  5. from threading import Thread
  6. import os
  7. app = Flask(__name__)
  8. app.config['MAIL_SERVER'] = 'smtp.qq.com'
  9. app.config['MAIL_PORT'] = 587
  10. app.config['MAIL_USE_TLS'] = True
  11. app.config['MAIL_USERNAME'] = '57812xxx@qq.com'
  12. app.config['MAIL_PASSWORD'] = 'agulvzfyjlbehi'
  13. mail = Mail(app)
  14. msg = Message('标题', sender='xxxx@qq.com', recipients=['xxxxx@163.com'])
  15. msg.body = '内容'
  16. with app.app_context():
  17. mail.send(msg)
  18. if __name__ == '__main__':
  19. app.run()

上面是一个发送邮件的简单示例,只要运行脚本,就会发送邮件到收件箱。在实际运用中,发送邮件通常需要几秒中,当触发发送邮件条件时我们不会在页面停留等他发完才去进行别的操作,而是为发送邮件服务开启另一个线程,方法:
  1. def send_async_email(app, msg):
  2. with app.app_context():
  3. mail.send(msg)
  4. @app.route('/send_email')
  5. def send_email():
  6. msg.body = '内容'
  7. thread = Thread(target=send_async_email, args=[app, msg])
  8. thread.start()
  9. return 'success'

以上就是发送邮件的具体代码操作。




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/857223
推荐阅读
相关标签
  

闽ICP备14008679号