从Flask-Mail发送邮件(SMTPSenderRefused 530)

Anu*_*nuj 11 python email smtp flask flask-mail

Flask Mail应用程序中使用的应用程序配置(遵循Miguel Grinberg Flask developlemt书籍):

app.config['MAIL_SERVER'] = 'smtp.googlemail.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = os.environ.get('MAIL_USERNAME')
app.config['MAIL_PASSWORD'] = os.environ.get('MAIL_PASSWORD')
Run Code Online (Sandbox Code Playgroud)

邮件用户名和密码变量已正确设置并重新检查.在尝试使用以下代码发送消息时,

from flask.ext.mail import Message
from hello import mail
msg = Message('test subject', sender='same as MAIL_USERNAME', recipients=['check@mail.com'])
msg.body = 'text body'
msg.html = '<b>HTML</b> body'
with app.app_context():
    mail.send(msg)
Run Code Online (Sandbox Code Playgroud)

发送时,应用程序会一次又一次地导致以下错误:

SMTPSenderRefused: (530, '5.5.1 Authentication Required. Learn more at\n5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 qb10sm6828974pbb.9 - gsmtp', u'configured MAIL_USERNAME')
Run Code Online (Sandbox Code Playgroud)

该错误的解决方法是什么?

Anu*_*nuj 8

在深入研究所面临的问题时,我重新检查了Google的SMTP设置,

Google SMTP设置

改变了

app.config['MAIL_SERVER'] = 'smtp.googlemail.com'
Run Code Online (Sandbox Code Playgroud)

app.config['MAIL_SERVER'] = 'smtp.gmail.com'
Run Code Online (Sandbox Code Playgroud)

做了伎俩.

另外,请确保将完整用户名用作Gmail SMTP用户名,即example@gmail.com,如上图所示.

希望这可以帮助!!!