我正在尝试发送“noreply”电子邮件来发送用户。但我不想在EMAIL_HOST_PASSWORD字段中输入密码。可能吗?我用PHP尝试了这个问题并且它取得了成功。我怎么能用Django做到这一点?
答案 0 :(得分:0)
不,您不能在没有EMAIL_HOST_PASSWORD
的情况下在django中发送电子邮件,因为您需要向服务器(例如:smtp
服务器)进行身份验证才能成功发送电子邮件。
您可以使用env
文件存储这些值并在settings.py
中创建环境变量,这些变量将从env
文件中获取其值。
通过这种方式,您可以在django中发送电子邮件,而无需在settings.py
中提及这些值,并保持env
安全且不受git(或您正在使用的任何SCM / VCS索引)。
答案 1 :(得分:0)
在终端中运行:
pip3 install python-decouple
如果您使用的是python3,但如果您使用的是python2类型,则仅使用pip而不是pip3
在django项目的根目录中创建.env文件并写下:
EMAIL_HOST_USER = 'blablabla@gmail.com' #my email
EMAIL_HOST_PASSWORD = 'fhiahsffd' #my password
在.gitignore中添加.env行
...
#other lines
.env
...
在settings.py中
import os
from decouple import config
...
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = config('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD')
EMAIL_USE_TLS = True
...
这样做你的电子邮件密码受到保护,这是我想象的事情
答案 2 :(得分:0)
如果在内部运行(例如从公司的服务器运行),则可以使用其SMTP服务器并发送不带密码的电子邮件。只需将EMAIL_PORT更改为所需的电子邮件端口,将EMAIL_HOST调整为公司的SMTP服务器,然后将EMAIL_HOST_USER更改为正在使用的电子邮件。