From 39ab86fe3e7d320edf8920968b559794e03f997a Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Thu, 16 Jul 2020 13:27:18 +0300 Subject: [PATCH] Get first signup email through --- members/views.py | 25 ++++++++----------------- webapp/models.py | 21 +++++++++++---------- webapp/utils.py | 5 ++--- 3 files changed, 21 insertions(+), 30 deletions(-) diff --git a/members/views.py b/members/views.py index 96a1cf6..325c110 100644 --- a/members/views.py +++ b/members/views.py @@ -7,9 +7,6 @@ from django.utils.translation import ugettext as _ from django.db.models.signals import post_save from django.dispatch import receiver -import logging -from smtplib import SMTPAuthenticationError - from members.models import Member, Request from webapp.utils import send_email @@ -20,13 +17,10 @@ def email_on_request(sender, instance, created, **kwargs): if not settings.ENABLE_AUTOMATIC_EMAILS: return - try: - if created: - subject = 'Test1' - message = 'Please validate your email address\r\n' - send_email(instance.email, subject, message) - except SMTPAuthenticationError: - logging.error('Failed to send email to accepted request!') + if created: + subject = 'Test1' + message = 'Please validate your email address\r\n' + send_email(instance.email, subject, message) @receiver(post_save, sender=Member) @@ -35,10 +29,7 @@ def email_on_accept(sender, instance, created, **kwargs): if not settings.ENABLE_AUTOMATIC_EMAILS: return - try: - if created: - subject = 'Test2' - message = 'Jäsenhakemuksesi on hyväksytty!!!\r\n' - send_email(instance.email, subject, message) - except SMTPAuthenticationError: - logging.error('Failed to send email to accepted member!') + if created: + subject = 'Test2' + message = 'Jäsenhakemuksesi on hyväksytty!!!\r\n' + send_email(instance.email, subject, message) diff --git a/webapp/models.py b/webapp/models.py index 87b60ab..9c997c4 100644 --- a/webapp/models.py +++ b/webapp/models.py @@ -14,7 +14,6 @@ from phonenumber_field.modelfields import PhoneNumberField from django.contrib.postgres.fields import JSONField from uuid import uuid4 import logging -from smtplib import SMTPAuthenticationError VERBOSE_NAME = _('Webapp') EMAIL_REGEX = r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)" @@ -186,18 +185,20 @@ class Signup(models.Model): @receiver(post_save, sender=Signup) -def email_on_singup(sender, instance, created, **kwargs): +def email_on_signup(sender, instance, created, **kwargs): """Send email validation.""" if not settings.ENABLE_AUTOMATIC_EMAILS: return - - try: - if created and instance.email: - # TODO: Possible bug due to many-to-many relationship with events and forms. - subject = _(f"Olet ilmoittautunut tapahtumaan {instance.signupForm.event.first().title}") - send_signup_email(instance.email, subject, instance.id, instance.uuid) - except SMTPAuthenticationError: - logging.error('Failed to send email to signup') + if created and instance.email: + # TODO: Possible bug due to many-to-many relationship with events and forms. + # TODO: Subject field crashes with lazy loaded translations. + try: + # subject = _(f"Olet ilmoittautunut tapahtumaan {instance.signupForm.event.first().title}") + subject = f"Olet ilmoittautunut tapahtumaan {instance.signupForm.event.first().title}" + except AttributeError: + # subject = _(f"Olet ilmoittautunut ilmoon {instance.signupForm.title}") + subject = f"Olet ilmoittautunut ilmoon {instance.signupForm.title}" + send_signup_email(instance.email, subject, instance.id, instance.uuid) class BaseRole(models.Model): diff --git a/webapp/utils.py b/webapp/utils.py index 79e5f01..c944133 100644 --- a/webapp/utils.py +++ b/webapp/utils.py @@ -42,13 +42,12 @@ def send_email(to, subject, body, fail_silently=False): } success = mailjet.send.create(data=data) - if success.status_code != 201: + # For some reason returns 200 OK instead of 201 Created... + if success.status_code != 200: raise Exception(f'Failed to send email: {success.json()}') except Exception as ex: logging.exception('Failed to send email.') - logging.debug(EMAIL_API_KEY) - logging.debug(EMAIL_API_SECRET) def send_signup_email(to, subject, id, uuid):