首页 > 解决方案 > 联系表格发送电子邮件成功,但我的邮箱中没有消息 - django

问题描述

我为我的网站的联系页面创建了以下 django 联系表。表单的问题在于,当用户填写并单击提交按钮时,它会显示成功消息,但不会发送电子邮件。我的意思是我的盒子里没有收到消息有人可以检查并告诉我哪里出错了。

表格.py:

from django import forms
from django.forms import ModelForm

# contact form
class ContactForm(forms.Form):
    contact_name = forms.CharField(required=True )

    contact_email = forms.EmailField(required=True )

    title = forms.CharField(required=True)

    content = forms.CharField(required=True )

视图.py:

def contact(request):
    Contact_Form = ContactForm
    if request.method == 'POST':
        form = Contact_Form(data=request.POST)

        if form.is_valid():
            contact_name = request.POST.get('contact_name')
            contact_email = request.POST.get('contact_email')
            contact_content = request.POST.get('content')
            title = request.POST.get('title')

            template = loader.get_template('website_primary_html_pages/contact_form.txt')
            context = {
                'contact_name' : contact_name,
                'contact_email' : contact_email,
                'title' : title,
                'contact_content' : contact_content,

            }

            content = template.render(context)

            email = EmailMessage(
                "Hey , There are new Message from blog",
                content,
                "Creative web" + '',
                ['contact@techpediaa.com'],
                headers = { 'Reply To': contact_email }
            )

            email.send()


            return redirect('Success')
    return render(request, 'website_primary_html_pages/contact_us.html', {'form':Contact_Form })

#end contact form

设置.py:

#MY EMAIL SETTING
DEFAULT_FROM_EMAIL = 'contact@techpediaa.com'
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

当用户填写所有字段时,它显示消息发送成功但我没有收到任何消息为什么

我在 settings.py 中的新设置:

#MY EMAIL SETTING
EMAIL_BACKEND ='django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'contact.techpediaa.com'
EMAIL_USE_TLS=False
EMAIL_PORT = 587 
EMAIL_HOST_USER = 'contact@techpediaa.com'
EMAIL_HOST_PASSWORD = 'mypass'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

标签: djangodjango-rest-frameworkdjango-views

解决方案


是的,您可以将其用于 Cpanel。

Cpanel 的流程与 google 的流程相同。您需要在 Cpanel 中创建应用密码

EMAIL_BACKEND ='django.core.mail.backends.smtp.EmailBackend'
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_HOST = 'your_mail.your_domain_of_Cpanel'
EMAIL_USE_TLS=True
EMAIL_PORT = 587 
EMAIL_HOST_USER = 'email'
EMAIL_HOST_PASSWORD = 'app_password'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

现在就试试

如果 EMAIL_USE_TLS 收到任何类型的错误,则编辑它 False


推荐阅读