2016-01-22 91 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和應用程序密碼的評論最有幫助,而現在我已經完成了我可能研究那些用於更強大的長期方法的裸機。謝謝!