Skip to main content
 首页 » 编程设计

python之发送 HTML 电子邮件 Django 1.9

2024年10月01日38thcjp

我正在尝试创建一个使用 send_mass_email 发送 HTML 电子邮件回复的联系表单,但我一直收到语法错误。

我的 views.py 中有以下代码

def email(request, template='marketing/email.html'): 
    form = ContactForm(request.POST or None) 
    if form.is_valid(): 
        subject = form.cleaned_data['subject'] 
        from_email = form.cleaned_data['from_email'] 
        message = form.cleaned_data['message'] 
        html_content = render_to_string( 
            'marketing/welcome.html', 
            { 
                'message': message, 
                'subject': subject, 
 
            } 
        ) 
        try: 
            message1 = (subject, message, from_email, ['test@test.com'], html_message=html_content) 
            message2 = (subject, message, from_email, ['test@test.com'], html_message=html_content) 
            send_mass_mail((message1, message2), fail_silently=False) 
        except BadHeaderError: 
            return HttpResponse('Invalid header found.') 
        return redirect('thanks') 
    context = { 
            "form": form, 
 
        } 
    return render(request, template, context) 
 
def thanks(request): 
    return HttpResponse('Thank you for your message.') 

我不断收到以下错误。

    message1 = (subject, message, from_email, ['test@test.com'], html_message=html_content) 
SyntaxError: invalid syntax 

请您参考如下方法:

发送电子邮件的良好做法是同时附上 HTML 和纯文本版本:

msg = EmailMultiAlternatives(subject, message_plaintext, from_email, recipient_list) 
msg.attach_alternative(message_html, "text/html") 

然后,给定一组 EmailMultiAlternatives 实例,您可以通过 connection.send_messages(messages) 批量发送所有这些实例 - 参见 this answer .