diff --git a/djangoldp_notification/models.py b/djangoldp_notification/models.py index 80ed4965ed2cea6462cf08c8b970e41c8c4d78ec..e41508a5abbed6187b747bde85b9dd88a93c87ac 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):