email.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django.conf import settings
  2. from django.core.mail import EmailMultiAlternatives
  3. from django.template.loader import render_to_string
  4. def send_email_met_quota(organization):
  5. template_html = "met-quota-drip.html"
  6. template_txt = "met-quota-drip.txt"
  7. subject = f"Met event quota for {organization.name}"
  8. base_url = settings.GLITCHTIP_DOMAIN.geturl()
  9. event_limit = settings.BILLING_FREE_TIER_EVENTS
  10. subscription_link = f"{base_url}/settings/{organization.slug}/subscription"
  11. context = {
  12. "organization_name": organization.name,
  13. "event_limit": event_limit,
  14. "subscription_link": subscription_link,
  15. }
  16. text_content = render_to_string(template_txt, context)
  17. html_content = render_to_string(template_html, context)
  18. to = [organization.email]
  19. msg = EmailMultiAlternatives(subject, text_content, to=to)
  20. msg.attach_alternative(html_content, "text/html")
  21. msg.send()
  22. def send_invitation_email(self, user, **kwargs):
  23. template_html = "organizations/email/invite-user-drip.html"
  24. template_txt = "organizations/email/invite-user-drip.txt"
  25. context = {
  26. "token": kwargs["token"],
  27. "user": user,
  28. "organization": kwargs["organization"],
  29. }
  30. html_content = render_to_string(template_html, context)
  31. text_content = render_to_string(template_txt, context)
  32. subject = "You are invited to GlitchTip"
  33. msg = EmailMultiAlternatives(subject, text_content, to=[user])
  34. msg.attach_alternative(html_content, "text/html")
  35. msg.send()