尝试从联系表单发送电子邮件时,我的django应用程序出现了一个奇怪的错误。
在DEBUG中提交联系表单时出现了unicode错误。
查看回溯后,导致unicode错误的字符串是utils.py中函数CachedDnsName()中的DNS_NAME
该功能返回了笔记本电脑的名称,即“Portátil-HP”
我收到了unicode错误,但为什么会这样?
settings.py
# Email setup
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypass'
EMAIL_PORT = 587
views.py
class Contactos(FormView):
@staticmethod
def get(request):
return render(request, 'site/contactos.html', {'form': Formulario()})
def post(self, request):
form = Formulario(request.POST or None)
if form.is_valid():
# All validation rules pass
# Process the data in form.cleaned_data
name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
send_mail(name, message, EMAIL_HOST_USER, [EMAIL_HOST_USER], fail_silently=False)
return render(request, 'site/contactos.html', {'form': Formulario()})
else:
return render(request, 'site/contactos.html', {'form': Formulario()})
答案 0 :(得分:0)
尝试设置这些:
EMAIL_FROM = 'emailtosentfrom@gmail.com'
SERVER_EMAIL = 'emailtosenterrorsfrom@gmail.com'
答案 1 :(得分:0)
DNS_NAME应该是ascii(就像域名一样),您的á
可能会破坏它。
据我所知,无法手动设置DNS_NAME(请参阅this ticket)
唯一的解决方案可能是将笔记本电脑的名称更改为更简单的字符。