python – 带smtp.gmail的Django电子邮件SMTPAuthenticationError 534需要特定于应用程序的密码

前端之家收集整理的这篇文章主要介绍了python – 带smtp.gmail的Django电子邮件SMTPAuthenticationError 534需要特定于应用程序的密码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想让 django发送电子邮件,但我收到此错误
Traceback (most recent call last):
  File "<console>",line 1,in <module>
  File "/Library/Python/2.7/site-packages/django/core/mail/__init__.py",line 62,in send_mail
    return mail.send()
  File "/Library/Python/2.7/site-packages/django/core/mail/message.py",line 286,in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/Library/Python/2.7/site-packages/django/core/mail/backends/smtp.py",line 92,in send_messages
    new_conn_created = self.open()
  File "/Library/Python/2.7/site-packages/django/core/mail/backends/smtp.py",line 59,in open
    self.connection.login(self.username,self.password)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/smtplib.py",line 615,in login
    raise SMTPAuthenticationError(code,resp)
SMTPAuthenticationError: (534,'5.7.9 Application-specific password required. Learn more at\n5.7.9 http://support.google.com/accounts/bin/answer.py?answer=185833 v14sm3323298pbs.11 - gsmtp')

链接建议我执行两步验证,但我仍然没有结果.

在我的settings.py中

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587

我尝试在django shell中测试它,但得到上面显示错误

>>> from django.core.mail import send_mail
>>> from django.conf import settings
>>> sub = "sup man"
>>> msg = "char lisss"
>>> from_user = settings.EMAIL_HOST_USER
>>> to = ["email@email.com"]
>>> send_mail(sub,msg,from_user,to,fail_silently=False)

解决方法

由于您使用双因素身份验证,因此您必须为此应用程序创建密码才能访问您的Google帐户,而无需使用2因素身份验证.

执行Google支持页面上的所有步骤以生成应用程序密码,然后更新您的EMAIL_HOST_PASSWORD以使用该密码,而不是您的常规帐户密码.

在此页面上:support.google.com/accounts/answer/185833按照“如何生成应用密码”标题下的步骤操作.生成后,您需要在配置中使用该密码.

猜你在找的Python相关文章