我正在尝试创建一个使用 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 .
