【发布时间】:2019-12-23 16:16:56
【问题描述】:
长时间的爬行者,第一次来电。 我试图创建和使用environ var从settings.py文件发送gmail(smtp),但显然我做错了,因为当我输入密码时它起作用了,但是当我使用os.environ.get隐藏密码。
我认为我没有正确调用环境变量,但我不知道!我遇到了身份验证错误
import os
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'xxxx----@gmail.com'
EMAIL_HOST_PASSWORD = 'Thisworkedfine'
但是当我在我的系统属性中定义“EMAIL_USER”和“EMAIL_PASS”后,它没有工作。
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('EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS')
来自地狱的错误:
SMTPSenderRefused at /password-reset/
(530, b'5.5.1 Authentication Required. Learn more at\n5.5.1 https://support.google.com/mail/?p=WantAuthError c2sm2597974pjs.13 - gsmtp', 'webmaster@localhost')
哈哈!
【问题讨论】:
-
你是如何在主机上设置环境变量的?设置文件对我来说很好。
-
您的假设是从环境中读取密码不起作用。通过打印
EMAIL_HOST_PASSWORD的内容来检验你的假设怎么样? -
当我打印
EMAIL_HOST_PASSWORD时,它似乎没有注册我在myEnvVal.py文件中为密码设置的字符串...我只是尝试如下所述设置,通过创建' myEnvVal.py' 文件并导入。
标签: python email django-settings