在本地发送电子邮件适用于以下 settings.py:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST_USER = os.environ.get("EMAIL_USER")
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_USER_PASSWORD")
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = os.environ.get("EMAIL_USER")
但是,当我在 Heroku 上实时尝试此操作时,出现此错误:
SMTPSenderRefused at /password_reset/
(530, b'5.7.0 Authentication Required. Learn more atn5.7.0 https://support.google.com/mail/?p=WantAuthError p80sm1777250qke.19 - gsmtp', 'None')
有谁知道问题是什么以及如何纠正它?
谢谢!
我不知道你是否已经找到了解决方案。我最近确实遇到了同样的问题。我实际上寻求并寻求帮助。
首先,您需要向您的Google帐户授予对安全性较低的应用程序的访问权限(我相信您已经这样做了,因为您提到它可以在本地工作。
测试Google是否没有自动关闭对安全性较低的应用程序的访问(如果不是这种情况(:您需要通过以下方式清理验证码: https://accounts.google.com/DisplayUnlockCaptcha
详情请见:https://support.google.com/mail/thread/32840224?hl=en
- 记得把环境变量也放在 Heroku 上。
祝你好运。
我的英语不是最好的,我会尝试解释什么对我有用。 所以我尝试了这些解决方案,但没有奏效:
- https://accounts.google.com/DisplayUnlockCaptcha ,
- 授予对安全性较低的应用程序的访问权限
- 为安全性较低的应用创建应用专用密码
- 环境变量在 Python 中工作
- 密码或电子邮件没有拼写错误
解决 方案
更改与 settings.py 中相同的环境变量的名称 所以而不是做EMAIL_HOST_USER = os.environ.get("EMAIL_USER"(
更改为
EMAIL_HOST_USER = os.environ.get("EMAIL_HOST_USER"(您的密码也是如此。
在我做上面的解决方案之前,我尝试过使用简单的字符串并且也可以工作EMAIL_HOST_USER = "您的电子邮件">和EMAIL_HOST_PASSWORD = "密码">
在我做完解决方案后,我必须做 1( https://accounts.google.com/DisplayUnlockCaptcha