SMTPSenderRefused: (530, ‘5.5.1 Authentication Required. Learn more at 5.5.1

在跟着《Flask Web开发:基于Python的Web应用开发实战》一书学习时,出现了以上错误提示。

问题出于第11章——博客文章。当运行

python manage.py runserver

后,在浏览器中打开localhost:5000,进入博客首页,然后在右上角点击login,然后点击register。填写注册信息后,系统会发送一封确认注册信息的电子邮件到注册的邮箱,但进入注册邮箱查看,并未收到邮件,然后查看runserver服务器返回的信息,除了上面有一长串的返回信息及错误文件路径外,最下面的,就是本文标题中所出现的错误提示,完整提示如下:

SMTPSenderRefused: (530, ‘5.5.1 Authentication Required. Learn more at 
5.5.1 https://support.google.com/mail/answer/14257 f14sm8290713ioi.2 – gsmtp’, ‘Flasky Admin <flasky@example.com>’)

而如果注册信息没有能从邮箱中确认,则书本后续的代码效果将无法进行查看,即所写代码将无从验证。因此该问题必须解决,方可进行下一步学习。

由以上错误提示可知,系统要求认证,对用于发送邮件的账号的认证。我们要做的,即是找出SMTP的配置信息。查看代码目录,可在flask根目录中发现有一个名为config.py的文件,明显该文件即配置信息所在。由于我们学习时,曾进行git checkout操作用书本源码替换掉自己的代码,因此怀疑错误即由作者的配置与我本机(邮件账户)信息不一致所至。因此打开该文件进行编辑:

config配置代码

上图中8-15行即为基本配置信息,可看到作者的默认配置为gmail的配置:

MAIL_SERVER = ‘smtp.googlemail.com’
MAIL_PORT = 587

最重要的在于这两行配置,前者设置了邮件服务器地址,后者为邮件服务器端口。因在大陆使用gmail容易出问题,因此我们应改为国内的邮件服务器进行测试学习。我将其改为新浪邮箱服务器的地址和默认端口:

MAIL_SERVER = ‘smtp.sina.com’
MAIL_PORT = 25

config.py配置文件中,第11/12/15行分别为管理员账户(即你是用这个邮箱账户发邮件给注册人的)的信息,即用于认证的信息。所以邮件服务器改完后,还应该配置这几行信息。配置方法在书本第6章——电子邮件中有说明,可参考第60页和第62页。

以上修改完毕后,再运行

python manage.py runserver

然后再点击发送电子邮件,就可以在注册邮箱中收到验证邮件了。注意查看垃圾箱

原文地址:https://www.cnblogs.com/wuzhiblog/p/6535535.html