""" Utilities for the core app. """ import smtplib from logging import getLogger from django.conf import settings from django.contrib.sites.models import Site from django.core.mail import send_mail from django.template.loader import render_to_string from django.utils.translation import gettext_lazy as _ from django.utils.translation import override logger = getLogger(__name__) def email_invitation(language, email, document_id): """Send email invitation.""" try: with override(language): title = _("Invitation to join Docs!") template_vars = { "title": title, "site": Site.objects.get_current(), "document_id": document_id, } msg_html = render_to_string("mail/html/invitation.html", template_vars) msg_plain = render_to_string("mail/text/invitation.txt", template_vars) send_mail( title, msg_plain, settings.EMAIL_FROM, [email], html_message=msg_html, fail_silently=False, ) except smtplib.SMTPException as exception: logger.error("invitation to %s was not sent: %s", email, exception)