title: django add html email template
body: <p>This code is from django_messages application.Even though template is supposed to be html, i still get raw html code in email body.What needs to be done in this case to send both text version and properly working HTML version?</p>
  
  <pre><code>{% load i18n %}
  {% load url from future %}
  
  {% blocktrans with recipient=message.recipient sender=message.sender %}Hello {{ recipient }},
  
  you received a private message from {{ sender }} with
  the following contents:{% endblocktrans %}
  
  {{ message.body|safe }}
  
  --
  {% blocktrans %}Sent from {{ site_url }}{% endblocktrans %}
  </code></pre>
  
  <p>Above is new_message.html file</p>
  
  <p>Below is actual code for sending email</p>
  
  <pre><code>def new_message_email(sender, instance, signal, 
      subject_prefix=_(u'New Message: %(subject)s'),
      template_name="messages/new_message.html",
      default_protocol=None,
      *args, **kwargs):
  """
  This function sends an email and is called via Django's signal framework.
  Optional arguments:
      ``template_name``: the template to use
      ``subject_prefix``: prefix for the email subject.
      ``default_protocol``: default protocol in site URL passed to template
  """
  if default_protocol is None:
      default_protocol = getattr(settings, 'DEFAULT_HTTP_PROTOCOL', 'http')
  
  if 'created' in kwargs and kwargs['created']:
      try:
          current_domain = Site.objects.get_current().domain
          subject = subject_prefix % {'subject': instance.subject}
          message = render_to_string(template_name, {
              'site_url': '%s://%s' % (default_protocol, current_domain),
              'message': instance,
          })
  
          if instance.recipient.email != "":
              send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,
                  [instance.recipient.email,])
      except Exception as e:
          #print e
          pass #fail silently
  
  if 'created' in kwargs and kwargs['created']:
      try:
          current_domain = Site.objects.get_current().domain
          subject = subject_prefix % {'subject': instance.subject}
          message = render_to_string(template_name, {
              'site_url': '%s://%s' % (default_protocol, current_domain),
              'message': instance,
          })
  
          if instance.recipient.email != "":
              send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,
                  [instance.recipient.email,])
      except Exception as e:
          #print e
          pass #fail silently
  </code></pre>
  
  <p><strong>This is new code i tried by following example but it is not working.</strong></p>
  
  <pre><code>if 'created' in kwargs and kwargs['created']:
      try:
          current_domain = Site.objects.get_current().domain
          subject = subject_prefix % {'subject': instance.subject}
          html_content = render_to_string(template_name, {
              'site_url': '%s://%s' % (default_protocol, current_domain),
              'message': instance,
          })
  
          if instance.recipient.email != "":
              text_content = strip_tags(html_content)
              msg = EmailMultiAlternatives(subject, text_content, settings.DEFAULT_FROM_EMAIL,
                  [instance.recipient.email,])
              msg.attach_alternative(html_content, "text/html")
              send_mail(msg)
      except Exception as e:
          #print e
          pass #fail silently
  </code></pre>