Как устранить ошибку Bad Request 400 с помощью функции send_mail?

Я использую React frontend для отправки данных из контактной формы с реактивным рендерингом в Django backend, который отправляет данные в виде электронного письма. Однако я продолжаю получать ошибку 400 Bad Request. Я пытался использовать функцию send_mail в оболочке, но получаю эту ошибку: "socket.gaierror: [Errno 11001] getaddrinfo failed"

Contact.js


    const sendEmail = () => {
        const csrfCookie = Cookies.get('csrftoken');
        
        console.log(formValue);
        axios.post("contact/", formValue, {
            headers: {
                'X-CSRFTOKEN': csrfCookie,
            },
        })
            .then(response => {
                console.log(response);
            })
            .catch(error => {
                console.log(error);
            });
    };

    const handleSubmit = (event) => {
        event.preventDefault();
        sendEmail();
        setFormValue({
            name: "",
            email: "",
            message: "",
        });
    };

urls.py

from django.urls import path

from django.views.generic import TemplateView

from .views import Contact

app_name = "core"

urlpatterns = [
    path("", TemplateView.as_view(template_name="core/home.html"), name="home"),
    path("contact/", Contact.as_view(), name="contact"),
]

views.py

class Contact(APIView):
    def post(self, request):
        serializer = ContactSerializer(data=request.data)
        if serializer.is_valid():
            form = serializer.data
            subject = "Website Inquiry"
            body = {
                "name": form["name"],
                "email": form["email"],
                "message": form["message"],
            }
            message = "\n".join(body.values())

            try:
                send_mail(
                    subject,
                    message,
                    settings.EMAIL_HOST_USER,
                    [settings.RECIPIENT_ADDRESS],
                )
                return Response(serializer.data, status=status.HTTP_201_CREATED)
            except:
                return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

settings.py

env = environ.Env()
environ.Env.read_env()

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "EMAIL_HOST"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = env("EMAIL_HOST_USER")
EMAIL_HOST_PASSWORD = env("EMAIL_HOST_PASSWORD")

RECIPIENT_ADDRESS = env("RECIPIENT_ADDRESS")

Может быть, потому что ваша EMAIL_HOST неправильная?

env = environ.Env()
environ.Env.read_env()

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = env("EMAIL_HOST") # <-------- load from env
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = env("EMAIL_HOST_USER")
EMAIL_HOST_PASSWORD = env("EMAIL_HOST_PASSWORD")

RECIPIENT_ADDRESS = env("RECIPIENT_ADDRESS")
Вернуться на верх