【问题标题】:Django sending e-mail u'' around headersDjango围绕标题发送电子邮件
【发布时间】:2010-02-28 23:32:52
【问题描述】:

我在 Django 中为客户编写了一个简单的联系表格。但是,无论何时发送电子邮件,它都会将标头值包装在 u'' 对象中。例如,From: 标头是

From: (u'my@email.com',)

这是发送消息的代码:

形式:

class ContactForm(forms.Form):
  name = forms.CharField(max_length=100)
  sender = forms.EmailField()
  subject = forms.CharField(max_length=255)
  message = forms.CharField(widget=forms.widgets.Textarea(attrs={'rows':15, 'cols': 72}))

联系功能:

def contact(request):
  RECAPTCHA_PRIVATE_KEY = '******************'
  captcha_error = ''
  if request.method == 'POST':
    form = ContactForm(request.POST)
    captcha_response = captcha.submit(request.POST.get("recaptcha_challenge_field", None),
                      request.POST.get("recaptcha_response_field", None),
                      RECAPTCHA_PRIVATE_KEY,
                      request.META.get("REMOTE_ADDR", None))

    if not captcha_response.is_valid:
      captcha_error = "&error=%s" % captcha_response.error_code
    elif form.is_valid():
      name = form.cleaned_data['name'],
      sender = form.cleaned_data['sender'],
      subject = form.cleaned_data['subject'],
      message = form.cleaned_data['message']

      recipients = ['email@email.com']
      try:
        send_mail(subject, message, sender, recipients)
      except BadHeaderError:
        pass

      flash_message = 'Thank you for contacting us. We will get back to you shortly.'

      return render_to_response('pages/contact.html', {
        'form': form,
        'captcha_error': captcha_error,
        'message': flash_message
      })

它完美地发送了电子邮件,我检查了相应的邮箱并出现了电子邮件。但是这些 u'' 对象会阻止电子邮件的主题正确显示并阻止其被回复。

我做错了什么?

提前致谢。

【问题讨论】:

    标签: python django email


    【解决方案1】:

    此处省略尾随逗号:

        elif form.is_valid():
          name = form.cleaned_data['name']
          sender = form.cleaned_data['sender']
          subject = form.cleaned_data['subject']
          message = form.cleaned_data['message']
    

    【讨论】:

    • 尾随逗号使这些项目tuples 与一项。
    • 哦,这是一个很容易犯的错误,尤其是在重构代码时。
    • 哇,我绝对没想到。非常感谢!
    猜你喜欢
    • 2011-10-18
    • 2019-07-10
    • 2014-10-26
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 2018-12-09
    相关资源
    最近更新 更多