本文主要是介绍Problems Solutions --8 SMTP in flask_mail,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
明明按照书中的代码来写,还是出错,大半天了。
还好解决了问题。
这样的报错 :smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')
解决办法竟然很简单:
smtp
简单邮件传输协议。
然后,一般邮箱中这个服务是关闭的。
可以自己开启这个服务,以QQ邮箱为例,设置→账户设置→开启这个SMTP服务:
QQ邮箱会自动生成一个授权码,flask_mail配置环境中的PASSWORD使用这个授权码,而不是邮箱密码。
然后运行flask程序,可以正常发送邮件了:
163邮箱,开启SMTP,会要求自己设置授权码。
使用时一样的,在环境配置时使用这个授权码,而不是邮箱密码。
测试用的代码,直接将邮箱名、密码写在了flask代码中。
书中建议在运行代码前命令行中输入这些配置,flask代码从命令行中获取邮箱名、密码、收件人。
from flask import Flask
from flask_mail import Mail, Messageapp = Flask(__name__)
app.config.update(DEBUG = True,MAIL_SERVER='smtp.qq.com',MAIL_PROT=25,MAIL_USE_TLS = True,MAIL_USE_SSL = False,MAIL_USERNAME = '(这里写邮箱名)',MAIL_PASSWORD = '(这里输入授权码)',MAIL_DEBUG = True
)mail = Mail(app)@app.route('/')
def index():# sender 发送方,recipients recipients 邮件接收方列表msg = Message("Hi!This is a test ",sender='(发送方邮箱)', recipients=['(收件人邮箱)'])# msg.body 邮件正文 msg.body = "This is a first email"# msg.attach 邮件附件添加# msg.attach("文件名", "类型", 读取文件)with app.open_resource("E:\psu.jpg") as fp:msg.attach("image.jpg", "image/jpg", fp.read())mail.send(msg) #发送邮件return "Sent" #网页中显示if __name__ == "__main__":app.run() # 访问http://127.0.0.1:5000/ 会运行index函数,发送邮件
这篇关于Problems Solutions --8 SMTP in flask_mail的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!