【问题标题】:How to send HTML in email using Django?如何使用 Django 在电子邮件中发送 HTML?
【发布时间】:2021-01-25 04:10:50
【问题描述】:

我是 Django 的新手。我想使用 django 通过电子邮件发送 html。我正在使用以下代码

  send_mail(
            'Email Title',
            'My Message',
            'webmaster@localhost', 
            [to mail],   
            fail_silently=False,
           ) 


  

此代码是发送简单的字符串,而不是发送 HTML。例如,如果我在消息正文中传递<h1>test</h1>,那么它将返回相同。我想在“测试”中应用<h1> 标签。该怎么做?

【问题讨论】:

  • 请确保发送多重mime,文本和html。有些人可能对 html 不满意或将其屏蔽。

标签: python django django-models django-views django-mailer


【解决方案1】:
from django.core.mail import EmailMultiAlternatives
from django.template.loader import render_to_string

def send_emails(request):
    merge_data = {
        'greetings': "hello"
    }
    html_body = render_to_string("email-templates.html", merge_data)

    message = EmailMultiAlternatives(
       subject='Django HTML Email',
       body="mail testing",
       from_email='xyz@abc.com',
       to=['wxyz1@abc.com']
    )
    message.attach_alternative(html_body, "text/html")
    message.send(fail_silently=False)

【讨论】:

    【解决方案2】:

    你可以做这样的事情,这会奏效。 但你必须在 'html_message' 中传递该消息

    from django.template import Template
    
    send_mail(
            'Email Title',
            html_message = Template("<b>Hello</b>"),
            'webmaster@localhost', 
            [to mail],   
            fail_silently=False,
    
           ) 
    

    【讨论】:

      猜你喜欢
      • 2011-03-15
      • 2013-10-15
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 2020-05-03
      • 2018-07-24
      • 1970-01-01
      相关资源
      最近更新 更多