python - SMTPSenderRefused(530,b'5.7.0 需要身份验证)
问题描述
我用 django 建立了一个网站,并且在使用 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 a68sm8842573qkd.10 - gsmtp', 'webmaster@localhost')
Request Method: POST
Request URL: https://mytobiapp.herokuapp.com/password-reset/
Django Version: 3.0.4
Exception Type: SMTPSenderRefused
Exception Value:
(530, b'5.7.0 Authentication Required. Learn more at\n5.7.0 https://support.google.com/mail/?p=WantAuthError a68sm8842573qkd.10 - gsmtp', 'webmaster@localhost')
Exception Location: /app/.heroku/python/lib/python3.6/smtplib.py in sendmail, line 867
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.6.10
Python Path:
['/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python36.zip',
'/app/.heroku/python/lib/python3.6',
'/app/.heroku/python/lib/python3.6/lib-dynload',
'/app/.heroku/python/lib/python3.6/site-packages']
设置.py
EMAIL_BACKEND="django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST="smtp.gmail.com"
EMAIL_PORT=587
EMAIL_USE_TLS= True
EMAIL_HOST_USER = os.environ.get("GMAIL")
EMAIL_HOST_PASSWORD = os.environ.get("CONTRASEÑA_GMAIL")
我已经尝试允许访问不太安全的应用程序并使用谷歌的 displayunlockcaptcha 功能,但似乎没有任何效果。任何帮助将不胜感激
解决方案
您可能没有正确保存环境变量。要测试您的变量是否正常工作,请在该目录中尝试此操作。
import os
a = os.environ.get('variable_a')
b = os.environ.get('variable_b')
print(a, b)
如果未设置,它应该给出 None 。
推荐阅读
- quickfixj - QuickFIX/J - 当接收到多个 SecurityDefinitions 时,连接被远程主机强行关闭
- r - 将三列分组,然后比较第四列的值
- c++ - 在运行时更改用类对象填充的数组的大小 c++
- mongodb - 如何减去时间序列元素以获得与之前日期的差异?
- visual-studio - Web API 项目无法在 Visual Studio 2019 中加载 - 错误:“值不在预期范围内”
- libgdx - 如何以速度和加速度将演员从一个点移动到另一个点
- f# - 使用折返重新创建“树包含元素”。我不明白为什么它工作
- c# - Moq 使用表达式参数模拟函数
- c# - 在 C# 中收到无法访问代码检测到问题的错误消息
- javascript - 如何使用 Chart.js 在散点图中添加文本?