diff --git a/djangoldp_notification/models.py b/djangoldp_notification/models.py index 24e331b..8cd4118 100644 --- a/djangoldp_notification/models.py +++ b/djangoldp_notification/models.py @@ -16,6 +16,8 @@ from djangoldp.fields import LDPUrlField from djangoldp.models import Model from djangoldp.permissions import InboxPermissions +from django.template import loader + class Notification(Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='inbox', on_delete=models.deletion.CASCADE) @@ -72,5 +74,22 @@ def send_request(target, object_iri): @receiver(post_save, sender=Notification) def send_email_on_notification(sender, instance, **kwargs): - send_mail('Notification on staging.happy-dev.fr', instance.summary, 'from@example.com', [instance.user.email], - fail_silently=True) + if instance.summary and settings.JABBER_DEFAULT_HOST and instance.user.email: + html_message = loader.render_to_string( + 'email.html', + { + 'on': settings.JABBER_DEFAULT_HOST, + 'instance': instance, + 'author': requests.get(instance.author).json()['name'] or 'Unknown user' + } + ) + send_mail( + 'Notification on ' + settings.JABBER_DEFAULT_HOST, + instance.summary, + settings.EMAIL_HOST_USER or "noreply@" + settings.JABBER_DEFAULT_HOST, + [instance.user.email], + fail_silently=False, + html_message=html_message + ) + else: + raise Exception('Misconfiguration, missing JABBER_DEFAULT_HOST or incomplete instance') diff --git a/djangoldp_notification/templates/email.html b/djangoldp_notification/templates/email.html new file mode 100644 index 0000000..2907e39 --- /dev/null +++ b/djangoldp_notification/templates/email.html @@ -0,0 +1,20 @@ + + + + + +
+

A new {{ instance.type }} from {{ author }} on {{ on }}

+

{{ instance.summary }}

+
+
+

+ -- +
+ Do not reply to this email directly, go to http://{{ on }} instead. +
+ Unsubscribe +

+
+ + \ No newline at end of file