Python Django联系方式邮件发送

Python Django联系方式邮件发送,python,django,email,Python,Django,Email,我在Django制作了一个名为“联系”(Bootstrap)的模式联系人表单,它100%工作,但我正忙着设置它,向我的电子邮件地址发送一封包含联系人表单内容的邮件 但是我有一个错误,说 settings.EMAIL_HOST_USER NameError: name 'settings' is not defined 我在settings.py文件中添加了邮件设置,并在my views.py中进行了设置,但是我收到了这个错误,我不知道为什么 视图.py from django.http imp

我在Django制作了一个名为“联系”(Bootstrap)的模式联系人表单,它100%工作,但我正忙着设置它,向我的电子邮件地址发送一封包含联系人表单内容的邮件

但是我有一个错误,说

settings.EMAIL_HOST_USER
NameError: name 'settings' is not defined
我在settings.py文件中添加了邮件设置,并在my views.py中进行了设置,但是我收到了这个错误,我不知道为什么

视图.py

from django.http import HttpResponse
from django.shortcuts import render
from django.views import View
from django.http import JsonResponse

from django.core.mail import send_mail, BadHeaderError
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, redirect
from .forms import ContactForm


class MailSender():
    host = settings.EMAIL_HOST_USER

    def sendMail(self, formData, message, sender):
        return send_mail(formData, message, self.host, sender, fail_silently = False)

class ContactMe(View):
    template = "contact.html"
    context = {
        'form': ContactForm()
    }


    def get(self, request):
        print("getting form")
        return render(request, self.template, self.context)

    def post(self, request):
        form = ContactForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            print(data)
            mailSender(ContactForm, data['message'], settings.EMAIL_HOST_USER, ['myemail@email.com'])
            MailSender.sendMail()
            if emailsent == True:
                returnData = {
                    'success': True,
                    'message': 'Email not sent, but data received'
                }
            else:
                returnData = {
                    'success': True,
                    'message': 'Email not sent, but data received'
                }
            # return JsonResponse(returnData, safe=False)
            next = request.POST.get('next', '/')
            return HttpResponseRedirect(next)

    def post_regularDjango(self, request):
        form = ContactForm(request.POST)

        if form.is_valid():
            data = form.cleaned_data
            print(data['from_email'], data['subject'], data['subject'])
            return render(request, self.template, self.context)

        else:
            print("form invalid")
            self.context.form = form
            return render(request, self.template, self.context)
settings.py文件中的电子邮件设置


EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'myemail@email.com'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
任何帮助都将不胜感激


您好,

您还没有将Django导入views.py

from django.conf import settings

在视图中显示已使用的导入。py@iklinac哈哈,对不起,我忘了加那个了。我已经更新了帖子,你可以在view.py部分看到导入。这是否回答了你的问题?哈哈,现在我觉得自己很傻!我想我在测试和尝试不同的方法时不小心被移除了。