在用flask mail发送邮件时,如果debug设置为False时,发现flask mail发送邮件时没有打印日志信息,就是reply:... send:....之类的

调查了flask mail源码,发现flask mail发送邮件通过对smtplib模块的封装实现的,在调用smtplib发送邮件之前,会传入一个debug级别参数,如果级别很低,smtplib就不会打印日志了

如果flask的debug设为False时,在mail.init_app(app)时,传入的debug参数默认就是0,所以smptblib不会打印日志

我们可以通过app.config中设置MAIL_DEBUG参数为1或更高级别来解决这个问题

分析过程:

flask mail发送邮件之前会设置mail.debug级别

 flask debug=false时,flask mail如何获取smtplib的debug日志(flask mail获取邮件发送结果)

 

 

 

该debug级别实在init_app方法中进行设置的,参数是app.config中的MAIL_DEBUG属性

如果flask的debug为False时,MAIL_DEBUG默认就会取0

 flask debug=false时,flask mail如何获取smtplib的debug日志(flask mail获取邮件发送结果)

 

 

 

smtplib中,判断debuglevel的值,如果大于0才会做打印。

 flask debug=false时,flask mail如何获取smtplib的debug日志(flask mail获取邮件发送结果)

 

 

 

 

 

app.config加入MAIL_DEBUG参数为1,smtplib模块即可打印邮件发送日志,这样就可以获取smtplib的标准输出和标准错误输出对象的内容

 flask debug=false时,flask mail如何获取smtplib的debug日志(flask mail获取邮件发送结果)

相关文章:

  • 2022-01-24
  • 2021-04-07
  • 2021-07-13
  • 2022-12-23
  • 2022-01-18
  • 2021-04-03
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-14
  • 2021-07-02
  • 2021-10-05
  • 2022-12-23
  • 2021-08-17
  • 2021-09-05
相关资源
相似解决方案