SMTPSenderRefused Ошибка Django: (501, b'<settings.EMAIL_HOST_USER>: адрес отправителя должен содержать домен', 'settings.EMAIL_HOST_USER')

Я работаю над проектом на Django. У меня есть контактная форма. Я хочу, чтобы когда кто-то заполняет форму, мой info@mydomain.com отправлял на мой gmail уведомление типа "Кто-то заполнил вашу форму". Что забавно, уведомление успешно приходит на мой gmail! Все работает хорошо, но ошибка все еще возникает!

Когда я перехожу к контактной форме и отправляю ее, появляется страница с ошибкой, которая гласит:

SMTPSenderRefused в /contact/ (501, b': адрес отправителя должен содержать домен', 'settings.EMAIL_HOST_USER')

Django Version: 5.0.2 Тип исключения: SMTPSenderRefused Значение исключения:
(501, b': адрес отправителя должен содержать домен', 'settings.EMAIL_HOST_USER') Местоположение исключения: C:\Users\Bedirhandd\AppData\Local\Programs\Python\Python311\Lib\smtplib.py, строка 887, in sendmail

А вот мои коды:

Settings.py

# EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_BACKEND = 'backend.email.EmailBackend'
EMAIL_HOST = 'mail.info@mydomain.com' 
EMAIL_PORT = 587
EMAIL_HOST_USER = 'info@mydomain.com' 
EMAIL_HOST_PASSWORD = 'mypassword' 
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'Mydomain <info@mydomain.com>'

файлbackend.email: (Я создал файл email_backend.py, чтобы избежать ошибки "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain". Я нашел код здесь

import ssl
from django.core.mail.backends.smtp import EmailBackend as SMTPBackend
from django.utils.functional import cached_property


class EmailBackend(SMTPBackend):
    @cached_property
    def ssl_context(self):
        if self.ssl_certfile or self.ssl_keyfile:
            ssl_context = ssl.SSLContext(protocol=ssl.PROTOCOL_TLS_CLIENT)
            ssl_context.load_cert_chain(self.ssl_certfile, self.ssl_keyfile)
            return ssl_context
        else:
            ssl_context = ssl.create_default_context()
            ssl_context.check_hostname = False
            ssl_context.verify_mode = ssl.CERT_NONE
            return ssl_context

И, наконец, вот мой views.py:

from django.shortcuts import render
from portfolio.models import Portfolio
from services.models import Service
from .forms import ContactFormForm
from django.core.mail import send_mail
from django.contrib import messages
from django.urls import reverse_lazy
from avaweb.settings import DEFAULT_FROM_EMAIL


def contact(request):
    if request.method == 'POST':
        form = ContactFormForm(request.POST)
        
        if form.is_valid():
            form.save()
            subject = f'New Form Filled:: {form.cleaned_data["subject"]}' 
            message = 'New Form Filled:. Details down below:\n\n' + \
            f'Username: {form.cleaned_data["name"]}\n' + \
            f'Service: {form.cleaned_data["subject"]}\n' + \
            f'How Many Workers: {form.cleaned_data["workers"]}\n' + \
            f'Users Mail: {form.cleaned_data["email"]}\n' + \
            f'Phone: {form.cleaned_data["phone"]}\n' + \
            f'When to call?: {form.cleaned_data["call_time"]}\n' + \
            f'Message: {form.cleaned_data["message"]}\n' 

            send_mail(subject,
                message,
                DEFAULT_FROM_EMAIL,
                ['mygmail@gmail.com'],
                fail_silently=False
                )
            messages.success(request, 'Thank you!')
    else:
        form = ContactFormForm()
    return render(request, 'contact.html', {'form': form,})

Редактирование: Я использую cPanel для моего info@mydomain.com

Вернуться на верх