【问题标题】:Sending Email Error in Django in Production在生产中的 Django 中发送电子邮件错误
【发布时间】:2019-06-08 15:44:33
【问题描述】:

您好,我有联系表格,用户在其中输入电子邮件地址,电子邮件将在本地发送。但是当我在生产中使用这段代码时,它会像这样在 Django 中给出异常。

Exception Type: OSError at /contact-us/
Exception Value: [Errno 101] Network is unreachable

settings.py 我已经使用此代码发送电子邮件

DEBUG = True
ALLOWED_HOSTS = ['*']

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'my_email_address'
EMAIL_HOST_PASSWORD = 'my_password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

forms.py的代码

class ContactForm(forms.ModelForm):

    class Meta:
        model = Consulting
        #fields = ['email']
        fields = '__all__'

        widgets = {
            'email': forms.TextInput(attrs={'class': 'form-control form-control-lg'}), 
            'name': forms.TextInput(attrs={'class': 'form-control form-control-lg'}), 
            'content': forms.TextInput(attrs={'class': 'form-control form-control-lg textarea-autosize'}), 
        }


        def clean_email(self):
            email = self.cleaned_data.get('email')

            return email 

views.py编写的代码

def contact_page(request):
    contactform = ContactForm(request.POST or None)

    if contactform.is_valid():
        instance = contactform.save(commit=False)
        if Consulting.objects.filter(email=instance.email).exists():
            messages.warning(request, 'Your Email Is Already Exists', "alert alert-warning alert-dismissible")
            print("This Email Is  Already Registered")
        else:
            instance.save()
            messages.success(request, 'Thanks For The contact.', "alert alert-success alert-dismissible")

            subject = "Thankyou for joining our newsletter"
            from_email = settings.EMAIL_HOST_USER
            to_email = [instance.email]
            signup_message = """ welcome to devdap contact """
            send_mail(subject=subject, from_email=from_email, recipient_list=to_email, message=signup_message, fail_silently=False)

    context = {
        'form':  contactform 
    }

    return render(request, "pages/contact_us.html", context)

【问题讨论】:

标签: python django django-forms


【解决方案1】:

您的提供商很可能阻止了用于发送电子邮件的端口。它也可能是由本地网络规则引起的(如果您使用的是 linux,请检查 iptables 规则,看看是否有任何传出流量阻塞)。

【讨论】:

    猜你喜欢
    • 2012-05-07
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2016-09-02
    • 2019-12-26
    相关资源
    最近更新 更多