登录凭据无法使用Gmail SMTP

时间:2013-05-12 22:16:13

标签: python login smtp smtp-auth

我正在尝试通过Gmail发送Python电子邮件。这是我的代码:

import smtplib


fromaddr = '......................'  
toaddrs  = '......................'  
msg = 'Spam email Test'  

username = '.......'  
password = '.......'

server = smtplib.SMTP('smtp.gmail.com', 587)  
server.ehlo()
server.starttls()
server.login(username, password)  
server.sendmail(fromaddr, toaddrs, msg)  
server.quit()

我收到错误:

Traceback (most recent call last):
  File "email_send.py", line 18, in <module>
    server.login(username, password)
  File "C:\.....\Python\lib\smtplib.py", line 633
, in login
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepte
d. Learn more at\n5.7.8 http://support.google.com/mail/bin/answer.py?answer=1425
7\n5.7.8 {BADCREDENTIALS} s10sm9426107qam.7 - gsmtp')

这似乎是登录的问题。我确信我的登录详细信息是正确的,除了一件事。用户名应该是“blah@gmail.com”,还是只是“等等”?我试过了两个,同样的错误。

任何想法都错了吗?

注意:所有句点都不是密码/电子邮件/文件路径/等。

8 个答案:

答案 0 :(得分:39)

我遇到了类似的问题,偶然发现了这个问题。我收到了SMTP身份验证错误,但我的用户名/密码是正确的。这是修复它的原因。我读到了这个:

https://support.google.com/accounts/answer/6010255

简而言之,谷歌不允许您通过smtplib登录,因为它已将此类登录标记为“不太安全”,因此您需要做的就是在登录到您的登录时转到此链接谷歌帐户,并允许访问:

https://www.google.com/settings/security/lesssecureapps

设置完成后(请参阅下面的屏幕截图),它应该可以正常工作。

Less Secure Apps

现在登录有效:

smtpserver = smtplib.SMTP("smtp.gmail.com", 587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo()
smtpserver.login('me@gmail.com', 'me_pass')

变更后的回复:

(235, '2.7.0 Accepted')

事先回复:

smtplib.SMTPAuthenticationError: (535, '5.7.8 Username and Password not accepted. Learn more at\n5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 g66sm2224117qgf.37 - gsmtp')

仍然无法正常工作?如果您仍然收到SMTPAuthenticationError,但现在代码为534,因为该位置未知。请点击此链接:

https://accounts.google.com/DisplayUnlockCaptcha

点击“继续”,这样您就可以在10分钟内注册新应用。所以现在继续进行另一次登录尝试,它应该可以工作。

这似乎无法正常工作,您可能会在smptlib中遇到此错误一段时间后停滞不前:

235 == 'Authentication successful'
503 == 'Error: already authenticated'

消息说使用浏览器登录:

SMTPAuthenticationError: (534, '5.7.9 Please log in with your web browser and then try again. Learn more at\n5.7.9 https://support.google.com/mail/bin/answer.py?answer=78754 qo11sm4014232igb.17 - gsmtp')

启用'lesssecureapps'后,去喝咖啡,回来,再次尝试'DisplayUnlockCaptcha'链接。根据用户体验,更改可能需要一个小时才能启动。然后再次尝试登录过程。

更新 ::请在此处查看我的回答: How to send an email with Gmail as provider using Python?

答案 1 :(得分:6)

我有同样的问题。身份验证错误可能是因为您的安全设置,例如两步验证。它不允许第三方应用程序覆盖身份验证。

登录您的Google帐户,然后使用以下链接:

第1步[禁用2步验证的链接]:

https://myaccount.google.com/security?utm_source=OGB&utm_medium=act#signin

第2步:[允许安全性较低的应用的链接]

https://myaccount.google.com/u/1/lesssecureapps?pli=1&pageId=none

现在应该都很好。

答案 2 :(得分:2)

如果您启用了两步验证,则需要生成一个特殊的应用密码,而不是使用您的通用密码。 https://myaccount.google.com/security#signin

答案 3 :(得分:2)

如果您遇到错误,则此错误(不接受535,b'5.7.8用户名和密码。有关详细信息,请参见\ n5.7.8 https://support.google.com/mail/?p=BadCredentials o60sm2132303pje.21-gsmtp')

然后只需进入“安全性”部分的google accountsettings,创建一个安全性较低的帐户,然后打开安全性较低的按钮

答案 4 :(得分:0)

我有同样的问题。我通过在Mac上为电子邮件应用程序创建应用程序密码来解决该问题。 您可以在我的帐户->安全->登录Google->应用密码中找到它。 下面是它的链接。 https://myaccount.google.com/apppasswords?utm_source=google-account&utm_medium=web

答案 5 :(得分:0)

我相信我来这里不晚。但是我认为这对新偷窥有帮助! 如果您使用的是smtp.gmail.com,则必须执行以下操作:  1.打开不太安全的应用程序  2.您将在Gmail收件箱中收到安全邮件,单击“是”,这就是我。  3.现在再次运行您的代码。

答案 6 :(得分:0)

我已经启用了“允许安全程度较低的应用程序”,并且我的SMPT python程序运行正常!

但是第二天,它却盯着我看“错误的凭据错误( SMTPAuthenticationError:(535,b'5.7.8用户名和密码不被接受})”。 我使用的凭据与以前完全相同,并且还启用了安全性较低的应用程序选项。

再次更改我的密码,但这也无济于事。

仍然无法正常工作吗?如果仍然收到SMTPAuthenticationError,但现在代码为534,则因为位置未知。点击此链接:

https://accounts.google.com/DisplayUnlockCaptcha

单击继续,这将给您10分钟的时间注册新应用。因此,请立即进行另一次登录尝试,它应该可以工作。

注意:必须尝试多次才能启用此选项。启用后,我尝试在30分钟后建立连接,并且可以正常工作.. !!!

希望这会有所帮助。

答案 7 :(得分:-1)

尝试打开安全性较低的应用,并确保您拥有 smtp.gmail.com 或其他搜索