尝试重置密码时出现身份验证错误-Django

时间:2020-01-03 13:12:00

标签: python django web gmail

我尝试通过gmail.com重设密码。我认为我的设置都正确,但是仍然无法正常工作,并引发如下错误:as you can see here

settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS')

我设置了环境变量EMAIL_USER(登录到我的gmail帐户)和EMAIL_PASS(当您使用两步身份验证时,Google提供了16位密码-Google App密码)。我尝试过也使用密码登录我的gmail帐户,但这也行不通。有人知道我做错了吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

将EMAIL_PORT更改为465

EMAIL_PORT = 465

使用smtplib直接连接到gmail stmp服务器时,它的端口587失败,但可用于465:

server=smtplib.SMTP_SSL('smtp.gmail.com', 465)
account="MY ACCOUNT LOG IN"
password="MY APP PASSWORD"
server.login(account, password) 

返回:

(235, b'2.7.0 Accepted')

但是

server=smtplib.SMTP_SSL('smtp.gmail.com', 587)
account="MY ACCOUNT LOG IN"
password="MY APP PASSWORD"
server.login(account, password)

给出超时错误。 gmail不支持没有SSL的连接:

server=smtplib.SMTP('smtp.gmail.com', 587)
account="MY ACCOUNT LOG IN"
password="MY APP PASSWORD"
server.login(account, password)

返回

smtplib.SMTPNotSupportedError: SMTP AUTH extension not supported by server.