Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在尝试使用Django send_mail和SendGrid发送电子邮件_Django_Sendgrid - Fatal编程技术网

正在尝试使用Django send_mail和SendGrid发送电子邮件

正在尝试使用Django send_mail和SendGrid发送电子邮件,django,sendgrid,Django,Sendgrid,我正在尝试使用SendGrid发送邮件,但每当我发送HTML格式的电子邮件时,它都会在电子邮件中显示HTML标记,而不是按需要格式化HTML。以下是我想要发送的内容: <html> <head></head> <body> <p>Hi!<br> How are you?<br> </p> </body> </html> 注意:invite\u user.tx

我正在尝试使用SendGrid发送邮件,但每当我发送HTML格式的电子邮件时,它都会在电子邮件中显示HTML标记,而不是按需要格式化HTML。以下是我想要发送的内容:

<html>
<head></head>
<body>
  <p>Hi!<br>
     How are you?<br>
  </p>
</body>
</html>
注意:
invite\u user.txt
包含上述html


有没有洞察到为什么它不承认这是HTML并相应地格式化它?我遗漏了什么吗?

默认情况下,Django邮件程序只发送电子邮件的文本部分。您需要将其设置为html(这是一种糟糕的做法),或者使用EmailMultiAlternations类。所以,我认为这才是你真正想要的:

from django.core.mail import EmailMultiAlternatives

def send(self, group=None):
  current_site = Site.objects.get_current()
  domain = unicode(current_site.domain)
  ctx = {
      "group": group,
      "signup_code": self,
      "domain": domain,
  }

  subject = render_to_string("signup_codes/invite_user_subject.txt", ctx)
  text_content = "Hi!\nHow are you?\n"
  html_content = render_to_string("signup_codes/invite_user.txt", ctx)

  msg = EmailMultiAlternatives(subject, text_content, settings.DEFAULT_FROM_EMAIL, [self.email])
  msg.attach_alternative(html_content, "text/html")

  msg.send()

还有一个正式的SeNETGRAPH Python包,您可以考虑使用内置的Django函数来替代它。在这里查看:


您从未发送您创建的
msg
。您只需发送两个字符串。查看django html电子邮件,只使用他们的邮件类型。好的,谢谢——虽然它还没有格式化——你知道为什么吗?它只是显示为文本。谢谢!你刚刚救了我一天:-)
from django.core.mail import EmailMultiAlternatives

def send(self, group=None):
  current_site = Site.objects.get_current()
  domain = unicode(current_site.domain)
  ctx = {
      "group": group,
      "signup_code": self,
      "domain": domain,
  }

  subject = render_to_string("signup_codes/invite_user_subject.txt", ctx)
  text_content = "Hi!\nHow are you?\n"
  html_content = render_to_string("signup_codes/invite_user.txt", ctx)

  msg = EmailMultiAlternatives(subject, text_content, settings.DEFAULT_FROM_EMAIL, [self.email])
  msg.attach_alternative(html_content, "text/html")

  msg.send()