diff --git a/mailing/models.py b/mailing/models.py index d6fa09c..2e039d9 100644 --- a/mailing/models.py +++ b/mailing/models.py @@ -12,7 +12,7 @@ import hashlib def generate_message_token(): # /!\ birthday problem - return get_random_string(length=32) + return get_random_string(length=32, allowed_chars='abcdefghijklmnopqrstuvwxyz0123456789') def hexdigest_sha256(*args): diff --git a/mailing/utils.py b/mailing/utils.py index a56e1f6..1e15fac 100644 --- a/mailing/utils.py +++ b/mailing/utils.py @@ -1,4 +1,5 @@ from django.conf import settings +from django.db import models import imaplib import ssl @@ -111,12 +112,12 @@ def process_email(raw_email): token = m.group('token') key = token[64:] try: - thread = MessageThread.objects.get(token=token[:32]) - sender = MessageCorrespondent.objects.get(token=token[32:64]) - except models.DoesNotExist: + thread = MessageThread.objects.get(token__iexact=token[:32]) + sender = MessageCorrespondent.objects.get(token__iexact=token[32:64]) + except models.ObjectDoesNotExist: raise InvalidTokenException - if key != hexdigest_sha256(settings.SECRET_KEY, thread.token, sender.token)[:16]: + if key.lower() != hexdigest_sha256(settings.SECRET_KEY, thread.token, sender.token)[:16]: raise InvalidKeyException Message.objects.create(thread=thread, from_email=sender.email, content=content)