535,b'5.7.8 G Suite和Django不接受用户名和密码

问题描述

我正在尝试从我的G Suite帐户发送电子邮件。我已经启用2FA并生成了我在django项目中使用的应用密码

我的settings.py文件如下:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = os.getenv("EMAIL_USER")

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = os.getenv("EMAIL_USER")
EMAIL_HOST_PASSWORD = os.getenv("EMAIL_PASSWORD")

我已将EMAIL_HOST_PASSWORD设置为生成的16个字符的应用密码。为什么它仍然失败?

(如果启用了2FA,则无法使用G Suite允许“安全性较低的应用程序”-我只是重定向到创建应用程序密码,这就是我所做的事情)

我一直都在得到

(535,b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https://support.google.com/mail/?p=BadCredentials 29sm2220422ljv.72 - gsmtp')

我缺少什么设置?

解决方法

我以前没有尝试过使用带有gsuite帐户的SMTP,但是我要使其与普通gmail帐户一起使用的步骤如下。

您只是想过,是否尝试过通过Gmail api使用服务帐户?

安全性较低的应用程序

您允许使用安全性较低的应用程序吗?请这样做,看看是否有帮助。 Less secure apps

清除验证码

Display Unlock Captcha

2fa使用应用密码。

如果在Gmail中使用“两步验证”,则可能需要输入应用密码。 Create & use App Passwords

Use "recent" mode if you are using POP3 on multiple devices.  https://support.google.com/mail/answer/7104828?hl=en

Xoauth2

如果仍然无法正常工作,则可能需要考虑检查xoauth2-protocol