我正在从tinymce向使用此视图的所有订阅用户发送电子邮件:
def send_newsletter(request):
form = NewsLetterEmailForm(request.POST or None)
if form.is_valid():
instance = form.save()
newsltr = NewsLetterEmail.objects.get(id=instance.id)
print(newsltr.status)
if newsltr.status == 'Published':
subject = newsltr.subject
body = mark_safe(newsltr.body)
from_email = settings.EMAIL_HOST_USER
for newsletter_obj in NewsLetter.objects.all():
send_mail(subject=subject, from_email=from_email,
message=body, recipient_list=[newsletter_obj.email])
return render(request, 'newsletter/send-email.html', {'form': form})但是电子邮件的内容是以html格式发送的:
<p><span style="font-family: 'arial black', sans-serif; font-size: 18pt;"><strong>Completely optimize efficient internal</strong></span></p>
<p>or "organic" sources with fully tested schemas. Enthusiastically aggregate mission-critical infrastructures via top-line content. Objectively matrix cutting-edge bandwidth before viral action items. Objectively matrix viral users after sticky processes. Dramatically harness adaptive meta-services rather than scalable e-commerce.</p>我使用了mark_safe()方法,希望它能工作,但它不能工作。我该如何解决它?
发布于 2019-12-10 23:15:52
我刚刚了解了如何使用EmailMultiAlternative()来做这件事,替换这部分代码就解决了这个问题。
if newsltr.status == 'Published':
subject = newsltr.subject
body = newsltr.body
from_email = settings.EMAIL_HOST_USER
for newsletter_obj in NewsLetter.objects.all():
msg = EmailMultiAlternatives(
subject, body, from_email, [newsletter_obj.email])
msg.attach_alternative(body, "text/html")
msg.send()https://stackoverflow.com/questions/59269923
复制相似问题