浏览代码

fix(api): use user.send_email() for dyndns welcome emails

Peter Thomassen 5 年之前
父节点
当前提交
84cd591f7e
共有 3 个文件被更改,包括 4 次插入22 次删除
  1. 1 0
      api/desecapi/models.py
  2. 3 12
      api/desecapi/signals.py
  3. 0 10
      api/desecapi/templates/emails/domain-dyndns/content.txt

+ 1 - 0
api/desecapi/models.py

@@ -149,6 +149,7 @@ class User(AbstractBaseUser):
             'password-change-confirmation',
             'reset-password',
             'delete-user',
+            'domain-dyndns',
         ]
         recipient = recipient or self.email
         if reason not in reasons:

+ 3 - 12
api/desecapi/signals.py

@@ -1,25 +1,16 @@
 from django.core.mail import EmailMessage
 from django.db.models.signals import post_save
 from django.dispatch import receiver
-from django.template.loader import get_template
 
 from desecapi import models
 
 
 @receiver(post_save, sender=models.Domain, dispatch_uid=__name__)
-def domain_handler(sender, instance, created, raw, using, update_fields, **kwargs):
+def domain_handler(sender, instance: models.Domain, created, raw, using, update_fields, **kwargs):
     if instance.is_locally_registrable:
-        content_tmpl = get_template('emails/domain-dyndns/content.txt')
-        subject_tmpl = get_template('emails/domain-dyndns/subject.txt')
-        from_tmpl = get_template('emails/from.txt')
-        context = {
+        instance.owner.send_email('domain-dyndns', context={
             'domain': instance.name,
             'url': f'https://update.{instance.parent_domain_name}/',
             'username': instance.name,
             'password': models.Token.objects.create(user=instance.owner, name='dyndns')
-        }
-        email = EmailMessage(subject_tmpl.render(context),
-                             content_tmpl.render(context),
-                             from_tmpl.render(context),
-                             [instance.owner.email])
-        email.send()
+        })

+ 0 - 10
api/desecapi/templates/emails/domain-dyndns/content.txt

@@ -32,13 +32,3 @@ dynDNS.
 
 Stay secure,
 Nils
-
---
-deSEC
-Kyffhäuserstr. 5
-10781 Berlin
-Germany
-
-phone: +49-30-47384344
-
-Vorstandsvorsitzender: Nils Wisiol