updating to support python3

git-svn-id: https://vault.zeeksgeeks.com/svn/django_aws_ses/trunk@7 ed966f06-d3d6-432b-bc91-693151a5c6b4
This commit is contained in:
Raymond Jessop 2023-11-08 20:27:19 +00:00
parent 823d6c1b2d
commit b3a7db0013
7 changed files with 22 additions and 15 deletions

View File

@ -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)

View File

@ -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()

View File

@ -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)

View File

@ -0,0 +1,11 @@
{% extends base_template_name %}
{% block title1 %}
Unsubscribe
{% endblock title1 %}
{% block content %}
<div>
<h3>{{ unsubscribe_message }}</h3>
</div>
{% endblock content %}

View File

@ -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<uuid>[0-9a-zA-Z]+)/(?P<hash>[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/<uuid:uuid>/<str:hash>/', HandleUnsubscribe.as_view(), name='aws_ses_unsubscribe')
]

View File

@ -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

View File

@ -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)