diff --git a/app/handler/unsubscribe_encoder.py b/app/handler/unsubscribe_encoder.py index 8d748291..bc079426 100644 --- a/app/handler/unsubscribe_encoder.py +++ b/app/handler/unsubscribe_encoder.py @@ -42,9 +42,11 @@ class UnsubscribeLink: class UnsubscribeEncoder: @staticmethod def encode( - action: UnsubscribeAction, data: Union[int, UnsubscribeOriginalData] + action: UnsubscribeAction, + data: Union[int, UnsubscribeOriginalData], + force_web: bool = False, ) -> UnsubscribeLink: - if config.UNSUBSCRIBER: + if config.UNSUBSCRIBER and not force_web: return UnsubscribeLink(UnsubscribeEncoder.encode_mailto(action, data), True) return UnsubscribeLink(UnsubscribeEncoder.encode_url(action, data), False) diff --git a/app/newsletter_utils.py b/app/newsletter_utils.py index 2a00c338..3be21ce9 100644 --- a/app/newsletter_utils.py +++ b/app/newsletter_utils.py @@ -27,13 +27,15 @@ def send_newsletter_to_user(newsletter, user) -> (bool, str): comm_alias_id = comm_alias.id unsubscribe_oneclick = unsubscribe_link - if via_email: + if via_email and comm_alias_id > -1: unsubscribe_oneclick = UnsubscribeEncoder.encode( - UnsubscribeAction.DisableAlias, comm_alias_id - ) + UnsubscribeAction.DisableAlias, + comm_alias_id, + force_web=True, + ).link send_email( - comm_alias.email, + comm_email, newsletter.subject, text_template.render( user=user,