【发布时间】: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)
【问题讨论】:
-
我会建议检查这个 stackoverflow.com/q/32478431/9559884>
-
这与我的问题有关..但这并不能解决我的问题...只有异常消失了,但仍然没有发送电子邮件...我已将这行代码放在我的设置中.py EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
标签: python django django-forms