python - 使用 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')
有谁知道问题是什么以及如何纠正它?
谢谢!
解决方案
我不知道您是否已经找到了解决方案。我最近确实有同样的问题。我实际上寻求并寻求帮助。
首先,您需要向您的 google 帐户授予对安全性较低的应用程序的访问权限(我相信您已经这样做了,因为您提到它在本地工作。)
如果不是,测试 Google 是否没有自动关闭对安全性较低的应用程序的访问:您需要通过以下方式清除 Captcha: https ://accounts.google.com/DisplayUnlockCaptcha
详见:https ://support.google.com/mail/thread/32840224?hl=en
- 记得把环境变量也放在 Heroku 上。
祝你好运。
推荐阅读
- javascript - 使用 Node JS(fs 和 http)保存后无法打开 JPG 或 PNG
- markdown - 如何在 Markdown 方程中写案例
- javascript - 使用 javascript 监听 cmd + shift + z 和 cmd + z 的最佳方式
- c - 递减函数
- python - CountDistinct 基于来自另一列 Pyspark 的条件
- javascript - 值在 return 语句之前是正确的,但在代码的其他部分未定义
- react-router - 路径选项的路由数组与参数有关吗?
- python - Python int 比较在熊猫中无法正常工作
- javascript - 无法测试 expressjs 服务器
- python - Pyparsing DSL 中的递归类型定义