From 4bf925fe6f2381782e6946b8f21f8f8c0e005dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Casaj=C3=BAs?= Date: Fri, 4 Aug 2023 14:01:21 +0200 Subject: [PATCH] Revert contact creation (#1836) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Adrià Casajús --- app/models.py | 14 ++++---------- email_handler.py | 2 +- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/app/models.py b/app/models.py index 6c97ec93..9fdd071c 100644 --- a/app/models.py +++ b/app/models.py @@ -30,13 +30,11 @@ from sqlalchemy_utils import ArrowType from app import config from app import s3 from app.db import Session -from app.email_validation import is_valid_email, normalize_reply_email from app.errors import ( AliasInTrashError, DirectoryInTrashError, SubdomainInTrashError, CannotCreateContactForReverseAlias, - InvalidContactEmailError, ) from app.handler.unsubscribe_encoder import UnsubscribeAction, UnsubscribeEncoder from app.log import LOG @@ -1805,11 +1803,11 @@ class Contact(Base, ModelMixin): commit = kw.pop("commit", False) flush = kw.pop("flush", False) + new_contact = cls(**kw) + + website_email = kw["website_email"] # make sure email is lowercase and doesn't have any whitespace - website_email = sanitize_email(kw["website_email"], not_lower=True) - kw["website_email"] = website_email - if "reply_email" in kw: - kw["reply_email"] = normalize_reply_email(sanitize_email(kw["reply_email"])) + website_email = sanitize_email(website_email) # make sure contact.website_email isn't a reverse alias if website_email != config.NOREPLY: @@ -1817,10 +1815,6 @@ class Contact(Base, ModelMixin): if orig_contact: raise CannotCreateContactForReverseAlias(str(orig_contact)) - if not is_valid_email(website_email): - raise InvalidContactEmailError(website_email) - - new_contact = cls(**kw) Session.add(new_contact) if commit: diff --git a/email_handler.py b/email_handler.py index 3aa0dc58..d061bb2e 100644 --- a/email_handler.py +++ b/email_handler.py @@ -261,7 +261,7 @@ def get_or_create_contact(from_header: str, mail_from: str, alias: Alias) -> Con Session.commit() except IntegrityError: - LOG.w("Contact %s %s already exist", alias, contact_email) + LOG.w(f"Contact with email {contact_email} for alias {alias} already exist") Session.rollback() contact = Contact.get_by(alias_id=alias.id, website_email=contact_email)