Почему python-dotenv не работает должным образом в проекте Django

#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}")