【发布时间】:2022-01-10 16:53:13
【问题描述】:
我通过 gmail 从 django 发送邮件突然停止工作。它已经运行了一年多,所以我认为我的基本设置应该仍然没问题。有问题的 Google 帐户启用了 2FA,并且在下面的配置中使用的密码是生成的 app-password,而不是主帐户密码。我已经通过浏览器登录了 Gmail,并检查了它没有被锁定并且没有超过配额。
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = '<MY-MAIL-ADDRESS>'
EMAIL_HOST_PASSWORD = '<PASSWORD>'
DEFAULT_FROM_EMAIL = '<MY-MAIL-ADDRESS>'
我已经使用以下命令验证了我的凭据:(ofc shell 扩展不起作用,我只是将命令的输出粘贴到该位置)
$ openssl s_client -connect smtp.gmail.com:587 -starttls smtp
>AUTH PLAIN $(echo -ne '\0MY-MAIL-ADDRESS\0PASSWORD' | base64)
>235 2.7.0 Accepted
但是,如果我尝试使用 send_mail 它会弹跳:
In [1]: from django.core.mail import send_mail
In [2]: send_mail('Subject', 'This is a test message', 'MY-MAIL-ADDRESS', ('recipient@address.com',))
(Output shortened)
SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials r17sm9826202wmq.5 - gsmtp')
关于什么可能(突然)出错的任何提示?
【问题讨论】:
-
检查这个答案。 enter link description here 干杯:)
-
我想你可以在这里找到解决这个问题的方法。 enter link description here
-
@VikramChoudhary 这不适用于我的情况。 “不太安全的应用程序”设置仅适用于未启用 2fa 的帐户。如果您有 2fa,则需要使用特定于应用程序的密码(我正在使用,如上所述)。
标签: django authentication gmail