Flask Mail配置Gmail发送邮件多参数组合均报错问题咨询
Flask-Mail Gmail发送失败解决方法
核心错误点出在你的Flask配置项:MAIL_USERNAME被设置为None。Flask-Mail执行SMTP登录时会读取MAIL_USERNAME和MAIL_PASSWORD作为校验凭证,你未填写发件人邮箱账号,自然无法通过Gmail的身份验证,这也是你多组配置测试时多次触发530认证错误的直接原因。
正确配置参考
对应你可正常运行的smtplib逻辑(587端口+TLS加密),Flask-Mail的配置调整如下即可:
from flask import Flask from flask_mail import Mail, Message app = Flask(__name__) app.config['MAIL_DEBUG'] = True app.config['TESTING'] = False app.config['MAIL_SERVER'] = 'smtp.gmail.com' app.config['MAIL_PORT'] = 587 app.config['MAIL_USE_TLS'] = True app.config['MAIL_USE_SSL'] = False # 此处必须填写完整的发件人Gmail账号,不得留空为None app.config['MAIL_USERNAME'] = 'me@gmail.com' app.config['MAIL_PASSWORD'] = '你的Gmail校验凭证' app.config['MAIL_DEFAULT_SENDER'] = 'me@gmail.com' app.config['MAIL_MAX_EMAILS'] = None app.config['MAIL_SUPPRESS_SEND'] = False app.config['MAIL_ASCII_ATTACHMENTS'] = False mail = Mail(app) @app.route('/') def home(): msg = Message('Test Message from Flask Mail', recipients=['you@gmail.com']) mail.send(msg) return 'OK' if __name__ == '__main__': app.run(debug=True)
补充注意事项
当前谷歌官方已关闭普通Google账号的「低安全性应用访问」权限,如果你使用的是普通个人账号,需要先开启账号的两步验证,之后生成应用专用密码,将生成的16位应用专用密码填入MAIL_PASSWORD配置项即可正常使用。
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

