Django将邮件发送回发送表单的用户

时间:2013-09-27 12:25:56

标签: django django-forms django-email

我的网站上有联系表格。

提交邮件后发给我。但我也希望向用户发送邮件,让用户知道我已收到表单提交。

当我尝试将email值作为收件人时,我收到此错误:AssertionError: "to" argument must be a list or tuple

有人看到我的代码出了什么问题吗?

def show_contactform(request):

    if request.method == 'POST':

        form = ContactForm(request.POST)

        if form.is_valid():

            f = ContactForm(request.POST)
            f.save()

            email = form.cleaned_data['email']

            subject = "New contact from website"
            recipients = ['contact@company.com']
            rendered = render_to_string('forms/email_body.html', {'form':form)


            to_user_subject = "Contact registred"
            to_user_rendered = render_to_string('form/to_user_email_contact.html', {'form_headline':subject})



            #Send content to celery worker for asynchronous mail outbox - sending to company
            tasks.send_email.delay(subject=subject, rendered=rendered, email=email, recipients=recipients)

            #Send content to celery worker for asynchronous mail outbox - sending to the user who sent the form
            tasks.send_email.delay(subject=to_user_subject, rendered=to_user_rendered, email=recipients, recipients=email)


            return HttpResponseRedirect('/form/contact/success/')

    else:
        form = ContactForm() # An unbound form

    return render(request, 'contact/form.html', {
        'form': form,
    })    

@task()
def send_email(subject, rendered, email, recipients):

    msg = EmailMultiAlternatives(subject, rendered, email, recipients)
    msg.attach_alternative(rendered, "text/html")
    msg.send()        

0 个答案:

没有答案