2016-01-22 54 views
0

我正在尝试使用smtplib来设置一个python脚本,它会通过电子邮件发送警报通知。我不需要任何花哨的东西,所以我想我会坚持基础知识,并使用SMTP来传递消息。下面的许多网上提供一个例子,我试图这样做开始使用smtplib从Gmail发送

server = smtplib.SMTP('smtp.gmail.com:587') 
server.starttls() 
server.login('username','password') 

,但在这一点上失败的SMTPAuthenticationError 534,告诉我,通过我的网络浏览器登录。当我这样做时,gmail发邮件给我说,登录失败,因为它来自“一个不符合现代安全标准的应用程序”。

我见过一些人有类似的问题,通过更改他们的gmail帐户到accept logon from less secure apps解决,但自己做了这个,并继续得到相同的错误信息。

所以是普通的SMTP不会削减它,我需要看中?我做错了什么,或者我能做些什么来完成这项工作?

+1

[这个问题](http://stackoverflow.com/q/25413301/113848)是关于IMAP,但我怀疑同样的解决方案适用。其中一个建议是使用OAuth进行身份验证; [这个问题](http://stackoverflow.com/q/11445523/113848)解决如何用smtplib做到这一点。 – legoscia

+1

启用双因素身份验证,并为此应用程序生成应用程序密码。这对我来说大约在3年前 – inspectorG4dget

回答

-1

事实证明,我尝试设置gmail接受来自不太安全的应用程序的登录(不管出于何种原因)在我第一次尝试时没有采取。进入https://myaccount.google.com/security?pli=1并开启此设置允许我成功访问。

尽管如此,我指向oauth2和应用程序密码的评论最有帮助,而现在我已经完成了我可能研究那些用于更强大的长期方法的裸机。谢谢!