Python SMTPAuthenticationError;不接受用户名和密码

Python SMTPAuthenticationError;不接受用户名和密码,python,django,smtp,gmail,google-domains,Python,Django,Smtp,Gmail,Google Domains,我跟随这本书,在第18章中,当前作业的一部分涉及通过Django发送电子邮件。我有一个用于测试的年度域名,我不想每月额外支付5美元,我想我只需要按照说明将电子邮件转发到现有地址 然后我继续进行设置,这样我就可以通过 但是,我无法使用生成的应用程序密码+别名使其工作。当我尝试从该页面发送电子邮件时,仅当2FA被禁用并且我使用实际的gmail凭据时,它才起作用,例如: EMAIL_HOST_USER = 'bob@gmail.com' EMAIL_HOST_PASSWORD = 'bobswife1

我跟随这本书,在第18章中,当前作业的一部分涉及通过Django发送电子邮件。我有一个用于测试的年度域名,我不想每月额外支付5美元,我想我只需要按照说明将电子邮件转发到现有地址

然后我继续进行设置,这样我就可以通过

但是,我无法使用生成的应用程序密码+别名使其工作。当我尝试从该页面发送电子邮件时,仅当2FA被禁用并且我使用实际的gmail凭据时,它才起作用,例如:

EMAIL_HOST_USER = 'bob@gmail.com'
EMAIL_HOST_PASSWORD = 'bobswife123'
smtpObj.login('bob@gmail.com', 'bobsmistress123')
smtpObj.sendmail('alias@bob.com', receiver, emailString)
它按预期工作。但是,假设我想使用生成的应用程序密码和别名,例如:

EMAIL_HOST_USER = 'alias@bob.com'
EMAIL_HOST_PASSWORD = 'bobsmistress123'
然后我将得到以下错误:

无法使用上述屏幕截图中URL中的支持文章,但为了方便起见:

不管怎样,这些就是我正在采取的步骤:

从macOS 10.13.1上的终端,我从终端运行
python manage.py runserver
,然后输入
http://localhost:8000/
进入谷歌浏览器。页面显示正确。我点击回车键并尝试发送电子邮件。接下来,它要么工作,要么我得到上面显示的屏幕截图。下面是回溯的一部分:

其他可能相关的设置:

EMAIL_HOST = 'smtp.gmail.com
EMAIL_PORT = 465
EMAIL_USE_SSL = True
非常感谢您的帮助

关于重复指控: 我已经从潜在的副本中尝试了接受答案的指示。再一次,我可以通过使用普通的Gmail凭据来实现这一点——但我不想透露我的个人电子邮件地址,这就是为什么我要使用说明设置别名。这应该允许我代表别名域(我拥有)发送电子邮件

编辑:向询问我是否尝试了故障排除步骤的用户添加我的响应(tl;dr yes I DIY):
  • 将您的电子邮件客户端更新至最新版本。
    未为此使用电子邮件客户端;不适用
  • 使用应用程序密码:如果使用两步验证,请尝试使用应用程序密码登录。
    已经解决了上述问题;我的问题是关于什么的
  • 允许不太安全的应用程序:如果不使用两步验证,您可能需要允许不太安全的应用程序访问您的帐户。
    已启用允许不太安全的应用程序。否则不起作用
  • 如果您最近更改了Gmail密码,您可能需要重新输入您的Gmail帐户信息,或者在其他电子邮件客户端上完全重复您的Gmail帐户设置。
    与我的gmail密码无关——当我使用我的实际gmail凭据并且能够登录gmail时,它就起作用了
  • 如果上述提示无效,请访问并按照页面上的步骤操作。
    已尝试此操作
  • 电子邮件客户端的登录方法可能不安全。尝试直接在Gmail应用程序上登录。
    不要认为我可以将gmail应用程序与此结合使用;不适用

我遇到了同样的问题:我使用不同的
电子邮件地址
登录和
发送邮件
(即使用gmail帐户和应用程序密码登录,然后在发送邮件中将转发的邮件指定为发件人)使其正常工作

例如:

EMAIL_HOST_USER = 'bob@gmail.com'
EMAIL_HOST_PASSWORD = 'bobswife123'
smtpObj.login('bob@gmail.com', 'bobsmistress123')
smtpObj.sendmail('alias@bob.com', receiver, emailString)

您是否尝试过帮助文章中列出的故障排除步骤?我很确定你的问题会出现在其中的一个——最有可能是“不太安全的应用”位。的可能副本无法编辑,因为它的字符太少,所以我不被允许。但您应该添加一个换行符,以便正确格式化代码:)