使用Django从表单POST数据发送电子邮件

时间:2014-07-25 14:46:59

标签: django forms email

所以我已经为我希望使用Django发送电子邮件的表单编写了HTML代码。从我所看到的一切,Django电子邮件正在与Django自己的表单模块一起使用,以便发送带有数据的电子邮件。我想知道是否可以保留我当前的HTML表单并访问其POST数据以用于Django的电子邮件功能?

1 个答案:

答案 0 :(得分:2)

您不需要使用django Form对象(如ContactForm):您可以通过视图的request参数访问表单的POST数据。

此示例取自文档(https://docs.djangoproject.com/en/dev/topics/email/#preventing-header-injection):

from django.core.mail import send_mail, BadHeaderError

def send_email(request):
    subject = request.POST.get('subject', '')
    message = request.POST.get('message', '')
    from_email = request.POST.get('from_email', '')
    if subject and message and from_email:
        try:
            send_mail(subject, message, from_email, ['admin@example.com'])
        except BadHeaderError:
            return HttpResponse('Invalid header found.')
        return HttpResponseRedirect('/contact/thanks/')

    else:
        # In reality we'd use a form class
        # to get proper validation errors.
        return HttpResponse('Make sure all fields are entered and valid.')

它既快又脏,但工作正常。

但是,看起来您仍然在django中处理表单处理问题。在继续之前,您可能希望继续这样做。

祝你好运。