我想邮寄一个包含一些数据的简单 HTML 文件。我希望用户接收呈现的 HTML。我试过这个解决方案:
b = render_to_string('mail_body.html',{'name':request.POST['name']})
send_mail(email_subject,b,'sender@gmail.com', ['receiver@gmail.com'],
fail_silently=False)
但是我没有在邮件正文中呈现 HTML,用户可以看到所有的 HTML 标签!
或者,当我使用以下代码时,我只是在邮件正文中获取我的 HTML 文件的路径:
params = {}
params['name'] = request.POST['name']
context = Context(params)
t = Template('mail_body.html')
send_mail(email_subject,t.render(context), 'sender@gmail.com',
['receiver@gmail.com'], fail_silently=False)
请您参考如下方法:
你可以尝试这样的事情:
from django.core.mail import EmailMultiAlternatives
body = render_to_string(template_name, locals(),
context_instance=RequestContext(request))
email = EmailMultiAlternatives(subject, body, mail_sender, [contact_request.email], headers={'Reply-To': 'do_not_reply@whatever.com'})
email.content_subtype='html'
email.send(fail_silently=False)
希望这会导致正确的方向。请注意,这里有很多变量来 self 自己的编程。
