#python #django #dotenv
#python #django #dotenv
Вопрос:
Я пытаюсь отправить данные формы django по электронной почте, используя модуль электронной почты и python-dotenv для переменных среды.
.env файл находится вместе settings.py и он загружает envs в settings.py соответственно, но я пробую это в views.py где я пытаюсь установить учетные данные aws ses в качестве переменных среды, и все, кажется, работает, но электронное письмо не отправляется, но затем я повторно ввожу учетные данные aws ses в обычном виде обратно в views.py и все снова работает отлично.
Есть идеи, почему с помощью envs электронное письмо не отправляется?
Код в views.py
import os
import emails
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv(), verbose=True)
...
часть кода с creds:
...
try:
# Send the email
r = message.send(
to= os.environ.get("RECEIPIENT"),
smtp={
"host": os.environ.get("HOST"),
"port": 587,
"timeout": 5,
"user": os.environ.get("USER"),
"password": os.environ.get("PASSWORD"),
"tls": True,
},
)
except BadHeaderError:
return HttpResponse(f"response{r.status_code == 250}")
Я также попробовал это, следуя примеру на официальном сайте python-dotenv, используя os.getenv():
...
try:
# Send the email
r = message.send(
to=os.getenv("RECEIPIENT"),
smtp={
"host": os.getenv("HOST"),
"port": 587,
"timeout": 5,
"user": os.getenv("USER"),
"password": os.environ.get("PASSWORD"),
"tls": True,
},
)
except BadHeaderError:
return HttpResponse(f"response{r.status_code == 250}")