我试图在Python中发送一封电子邮件,通过Gmail。 这里是我的代码:
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”,或简称“嗒嗒”? 我都尝试,同样的错误。
任何想法什么错?
注:所有的时间都代替密码/电子邮件/文件路径/等。
我遇到了类似的问题,无意中发现了这个问题。 我得到了一个SMTP验证错误,但我的用户名/密码是正确的。 这里是固定的。 我这样说的:
https://support.google.com/accounts/answer/6010255
概括地说,谷歌是不会让您因为它已标记这种登录为“不太安全”的通过登录的smtplib中,所以你要做的就是去这个链接,而你在你的谷歌帐户登录,并允许访问:
https://www.google.com/settings/security/lesssecureapps
一旦设置(见下面我的截图),它应该工作。
现在登录的工作原理:
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”链接。 从用户体验,可能需要长达一个小时的变化来踢,然后再次尝试登录过程。
更新 ::请参阅我的答案在这里: 如何使用Python与Gmail发送电子邮件作为供应商?
我遇到过同样的问题。 该验证错误可能是因为您的安全设置,两步验证的实例。 它不会允许第三方应用程序重写认证。
登录到您的谷歌帐户,并使用这些链接:
步骤1 [禁用两步骤验证的链接]:
https://myaccount.google.com/security?utm_source=OGB&utm_medium=act#signin
步骤2:[链接用于允许不够安全的应用]
https://myaccount.google.com/u/1/lesssecureapps?pli=1&pageId=none
现在应该都不错。
如果你开启两步验证功能,你需要生成一个特殊的应用程序密码,而不是使用常见密码的。 https://myaccount.google.com/security#signin
我有同样的问题。 和我一起创建一个应用程序密码在Mac上的电子邮件应用程序修复它。 你可以在我的帐户中找到它 - >安全 - >登录到谷歌 - >应用密码。 下面是相应链接。 https://myaccount.google.com/apppasswords?utm_source=google-account&utm_medium=web