首页 > 解决方案 > 使用 Gmail 发送电子邮件可以在本地工作,但不能在 heroku (django) 上工作

问题描述

使用此 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 at\n5.7.0  https://support.google.com/mail/?p=WantAuthError p80sm1777250qke.19 - gsmtp', 'None')

有谁知道问题是什么以及如何纠正它?

谢谢!

标签: pythondjangoemail

解决方案


我不知道您是否已经找到了解决方案。我最近确实有同样的问题。我实际上寻求并寻求帮助。

  1. 首先,您需要向您的 google 帐户授予对安全性较低的应用程序的访问权限(我相信您已经这样做了,因为您提到它在本地工作。)

  2. 如果不是,测试 Google 是否没有自动关闭对安全性较低的应用程序的访问:您需要通过以下方式清除 Captcha: https ://accounts.google.com/DisplayUnlockCaptcha

详见:https ://support.google.com/mail/thread/32840224?hl=en

  1. 记得把环境变量也放在 Heroku 上。

祝你好运。


推荐阅读