From ca468cb5c13227e88919ee547a5af1a75db02515 Mon Sep 17 00:00:00 2001 From: Calum Mackervoy <c.mackervoy@gmail.com> Date: Thu, 21 Oct 2021 15:29:14 +0200 Subject: [PATCH] syntax: refactor email notification code --- djangoldp_notification/models.py | 39 ++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/djangoldp_notification/models.py b/djangoldp_notification/models.py index 80ed496..e41508a 100644 --- a/djangoldp_notification/models.py +++ b/djangoldp_notification/models.py @@ -224,13 +224,33 @@ def send_request(target, object_iri, instance, created): ActivityQueueService.send_activity(target, json) +def get_default_email_sender_djangoldp_instance(): + ''' + :return: the configured email host if it can find one, or None + ''' + email_from = (getattr(settings, 'DEFAULT_FROM_EMAIL', False) or getattr(settings, 'EMAIL_HOST_USER', False)) + + if not email_from: + jabber_host = getattr(settings, 'JABBER_DEFAULT_HOST', False) + + if jabber_host: + return "noreply@" + jabber_host + return None + + return email_from + @receiver(post_save, sender=Notification) def send_email_on_notification(sender, instance, created, **kwargs): if created \ and instance.summary \ - and getattr(settings,'JABBER_DEFAULT_HOST',False) \ and instance.user.email \ and instance.type in ('Message', 'Mention'): + + email_from = get_default_email_sender_djangoldp_instance() + + if email_from is None or not instance.user.settings.receiveMail: + return + # get author name, and store in who try: # local author @@ -271,15 +291,14 @@ def send_email_on_notification(sender, instance, created, **kwargs): } ) - if instance.user.settings.receiveMail: - send_mail( - 'Notification sur ' + on, - instance.summary, - (getattr(settings, 'EMAIL_HOST_USER', False) or "noreply@" + settings.JABBER_DEFAULT_HOST), - [instance.user.email], - fail_silently=True, - html_message=html_message - ) + send_mail( + 'Notification sur ' + on, + instance.summary, + email_from, + [instance.user.email], + fail_silently=True, + html_message=html_message + ) @receiver(post_save, sender=settings.AUTH_USER_MODEL) def create_user_settings(sender, instance, created, **kwargs): -- GitLab