def test_asm(self): msg = EmailMessage( subject="Hello, World!", body="Hello, World!", from_email="Sam Smith <*****@*****.**>", to=["John Doe <*****@*****.**>", "*****@*****.**"], ) msg.asm = {"group_id": 1} result = self.backend._build_sg_mail(msg) self.assertIn("asm", result) self.assertIn("group_id", result["asm"]) del msg.asm["group_id"] with self.assertRaises(KeyError): self.backend._build_sg_mail(msg) msg.asm = { "group_id": 1, "groups_to_display": [2, 3, 4], "bad_key": None } result = self.backend._build_sg_mail(msg) self.assertIn("asm", result) self.assertIn("group_id", result["asm"]) self.assertIn("groups_to_display", result["asm"])
def test_asm(self): msg = EmailMessage( subject="Hello, World!", body="Hello, World!", from_email="Sam Smith <*****@*****.**>", to=["John Doe <*****@*****.**>", "*****@*****.**"], ) msg.asm = {"group_id": 1} result = self.backend._build_sg_mail(msg) self.assertIn("asm", result) self.assertIn("group_id", result["asm"]) del msg.asm["group_id"] with self.assertRaises(KeyError): self.backend._build_sg_mail(msg) msg.asm = {"group_id": 1, "groups_to_display": [2, 3, 4], "bad_key": None} result = self.backend._build_sg_mail(msg) self.assertIn("asm", result) self.assertIn("group_id", result["asm"]) self.assertIn("groups_to_display", result["asm"])
def send_email(self, subject, context, receiver): template = self.get_template() html = template.render(context) # update paths base = context["protocol"] + context["domain"] sender = self.sender or settings.DEFAULT_FROM_EMAIL if getattr(settings, "UNIVERSAL_NOTIFICATIONS_USE_PREMAILER", True) and self.use_premailer is not False: html = html.replace( "{settings.STATIC_URL}CACHE/".format(settings=settings), "{settings.STATIC_ROOT}/CACHE/".format( settings=settings)) # get local file html = Premailer(html, remove_classes=False, exclude_pseudoclasses=False, keep_style_tags=True, include_star_selectors=True, strip_important=False, cssutils_logging_level=logging.CRITICAL, base_url=base).transform() # if subject is not provided, try to extract it from <title> tag if not subject: self.email_subject = self.__get_title_from_html(html) subject = self.prepare_subject() email = EmailMessage(subject, html, sender, [receiver], attachments=self.attachments) if self.categories: email.categories = self.categories if self.sendgrid_asm: email.asm = self.sendgrid_asm email.content_subtype = "html" email.send(fail_silently=False)