diff --git a/django_aws_ses/backends.py b/django_aws_ses/backends.py index a96d02a..9c2f915 100644 --- a/django_aws_ses/backends.py +++ b/django_aws_ses/backends.py @@ -14,7 +14,6 @@ from . import settings from . import signals from . import utils from .models import BounceRecord -from saleor.core.utils import email_exclusion_filter logger = settings.logger @@ -158,9 +157,6 @@ class SESBackend(BaseEmailBackend): logger.info("message.recipients() = %s" % message.recipients()) marketing = message.extra_headers.get("marketing","False") - message.to = email_exclusion_filter(message.to,marketing) - message.cc = email_exclusion_filter(message.cc,marketing) - message.bcc = email_exclusion_filter(message.bcc,marketing) message.to = utils.filter_recipiants(message.to) message.cc = utils.filter_recipiants(message.cc) diff --git a/django_aws_ses/models.py b/django_aws_ses/models.py index 7747349..c3866b4 100644 --- a/django_aws_ses/models.py +++ b/django_aws_ses/models.py @@ -9,7 +9,7 @@ from django.dispatch import receiver from django.contrib.sites.models import Site from django.contrib.auth import get_user_model # If used custom user model from django.urls import reverse -from django.utils.encoding import force_bytes, force_text +from django.utils.encoding import force_bytes, force_str from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode User = get_user_model() diff --git a/django_aws_ses/settings.py b/django_aws_ses/settings.py index 9c0c8b3..e149aa0 100644 --- a/django_aws_ses/settings.py +++ b/django_aws_ses/settings.py @@ -53,7 +53,7 @@ HOME_URL = getattr(settings, 'HOME_URL', '') if not BASE_DIR: raise RuntimeError('No BASE_DIR defined in project settings, django_aws_ses requires BASE_DIR to be defined and pointed at your root directory. i.e. BASE_DIR = os.path.dirname(os.path.abspath(__file__))') -UNSUBSCRIBE_TEMPLET = getattr(settings, 'UNSUBSCRIBE_TEMPLET', 'django_aws_ses/unsebscribe.html') +UNSUBSCRIBE_TEMPLET = getattr(settings, 'UNSUBSCRIBE_TEMPLET', 'django_aws_ses/unsubscribe.html') BASE_TEMPLET = getattr(settings, 'UNSUBSCRIBE_TEMPLET', 'django_aws_ses/base.html') AWS_SES_REGION_ENDPOINT_URL = getattr(settings, 'AWS_SES_REGION_ENDPOINT_URL','https://' + AWS_SES_REGION_ENDPOINT) diff --git a/django_aws_ses/templates/django_aws_ses/unsubscribe.html b/django_aws_ses/templates/django_aws_ses/unsubscribe.html new file mode 100644 index 0000000..d3efa32 --- /dev/null +++ b/django_aws_ses/templates/django_aws_ses/unsubscribe.html @@ -0,0 +1,11 @@ +{% extends base_template_name %} + +{% block title1 %} +Unsubscribe +{% endblock title1 %} + +{% block content %} +
+

{{ unsubscribe_message }}

+
+{% endblock content %} \ No newline at end of file diff --git a/django_aws_ses/urls.py b/django_aws_ses/urls.py index f2940fc..2296980 100644 --- a/django_aws_ses/urls.py +++ b/django_aws_ses/urls.py @@ -1,4 +1,4 @@ -from django.conf.urls import include, url +from django.urls import include, path from django.views.decorators.csrf import csrf_exempt from .views import ( @@ -10,7 +10,7 @@ from .views import ( app_name = "django_aws_ses" urlpatterns = [ - url(r'^status/$', dashboard, name='aws_ses_status'), - url(r'^bounce/$', csrf_exempt(handle_bounce),name='aws_ses_bounce'), - url(r'^unsubscribe/(?P[0-9a-zA-Z]+)/(?P[0-9a-zA-Z]+)/$', HandleUnsubscribe.as_view(), name='aws_ses_unsubscribe') + path('status/', dashboard, name='aws_ses_status'), + path('bounce/', csrf_exempt(handle_bounce),name='aws_ses_bounce'), + path('unsubscribe///', HandleUnsubscribe.as_view(), name='aws_ses_unsubscribe') ] diff --git a/django_aws_ses/utils.py b/django_aws_ses/utils.py index 41fe518..758b041 100644 --- a/django_aws_ses/utils.py +++ b/django_aws_ses/utils.py @@ -111,7 +111,7 @@ class BounceMessageVerifier(object): ) try: - import M2Crypto + from M2Crypto import X509 except ImportError: raise ImproperlyConfigured( "`M2Crypto` is required for bounce message verification. " @@ -132,8 +132,8 @@ class BounceMessageVerifier(object): # If the certificate is invalid then return # false as we couldn't verify the message. try: - self._certificate = M2Crypto.X509.load_cert_string(response.content) - except M2Crypto.X509.X509Error as e: + self._certificate = X509.load_cert_string(response.content) + except X509.X509Error as e: logger.warning(u'Could not load certificate from %s: "%s"', cert_url, e) self._certificate = None diff --git a/django_aws_ses/views.py b/django_aws_ses/views.py index dd598e9..55b7834 100644 --- a/django_aws_ses/views.py +++ b/django_aws_ses/views.py @@ -20,7 +20,7 @@ from django.core.exceptions import PermissionDenied from django.shortcuts import render, redirect from django.contrib.auth import get_user_model from django.views.generic.base import TemplateView -from django.utils.encoding import force_bytes, force_text +from django.utils.encoding import force_bytes, force_str from . import settings from . import signals @@ -432,7 +432,7 @@ class HandleUnsubscribe(TemplateView): logger.info("in get ----- self.base_template_name: %s" % self.base_template_name) try: - uuid = force_text(urlsafe_base64_decode(uuid).decode()) + uuid = force_str(urlsafe_base64_decode(uuid).decode()) logger.info('uuid: %s' % uuid) user = User.objects.get(pk=uuid) logger.info('user.pk: %s' % user.pk)