长时间的爬行者,第一次来电。 我试图创建并使用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 = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="631b1b1b1b4e4e4e4e23040e020a0f4d000c0e" rel="noreferrer noopener nofollow">[email protected]</a>'
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')
来自 hell 的错误:
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')
哈普!
最佳答案
一种方法是在另一个 python 文件中设置变量并导入该文件。
创建一个文件,例如myEnvVal.py
import os
# Set environment variables
def setVar():
os.environ['EMAIL_USER'] = 'xxxx----@gmail.com'
os.environ['EMAIL_PASSWORD'] = 'Thisworkedfine'
现在导入此文件
import os
import myEnvVal
myEnvVal.setVar()
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')
关于python - 在Python中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57539884/