from django.conf import settings from django.core.mail import EmailMultiAlternatives from django.template.loader import render_to_string def send_notification_email(user, subject, template_txt, context, template_html=None): """ Versendet nur, wenn EMAIL_ENABLED=True und user.email vorhanden. template_txt: Pfad zu Plaintext-Template template_html: optional Pfad zu HTML-Template """ if not settings.EMAIL_ENABLED: return False if not user or not user.email: return False subject_full = f"{settings.EMAIL_SUBJECT_PREFIX}{subject}" body_txt = render_to_string(template_txt, context) msg = EmailMultiAlternatives( subject=subject_full, body=body_txt, from_email=settings.DEFAULT_FROM_EMAIL, to=[user.email], ) if template_html: body_html = render_to_string(template_html, context) msg.attach_alternative(body_html, "text/html") msg.send(fail_silently=False) return True