我的网站上有一个表格,提交后,它会向我自己的邮箱发送一封电子邮件。
我的问题是,为此,我在 settings.py 中硬编码了我的电子邮件和密码,如下所示:
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
但我觉得它根本不安全,所以我尝试找到一种方法让它不在我的settings.py中硬编码。根据我存储 key 的方式,我尝试了以下操作:
with open('/Users/myapp/email.txt') as f:
EMAIL_HOST_USER = f.read().strip()
with open('/Users/myapp/email_password.txt') as f:
EMAIL_HOST_PASSWORD = f.read().strip()
但是没有成功。它会引发 SMTP 错误:“用户名和密码不被接受。”
关于如何更好地保护我的密码有什么想法吗?
您应该使用环境变量,然后在设置中读取它,例如:
import os
EMAIL_HOST_USER = os.environment.get('EMAIL_HOST_USER')
然后您可以将值保留在您的存储库中。
该环境需要对运行 Django 的进程有效。
我是一名优秀的程序员,十分优秀!