diff --git a/app/config.py b/app/config.py index f63a04a9..3866eff6 100644 --- a/app/config.py +++ b/app/config.py @@ -147,14 +147,15 @@ DISABLE_ALIAS_SUFFIX = "DISABLE_ALIAS_SUFFIX" in os.environ # the email address that receives all unsubscription request UNSUBSCRIBER = os.environ.get("UNSUBSCRIBER") -DKIM_PRIVATE_KEY_PATH = get_abs_path(os.environ["DKIM_PRIVATE_KEY_PATH"]) DKIM_SELECTOR = b"dkim" - -with open(DKIM_PRIVATE_KEY_PATH) as f: - DKIM_PRIVATE_KEY = f.read() - - DKIM_HEADERS = [b"from", b"to"] +DKIM_PRIVATE_KEY = None + +if "DKIM_PRIVATE_KEY_PATH" in os.environ: + DKIM_PRIVATE_KEY_PATH = get_abs_path(os.environ["DKIM_PRIVATE_KEY_PATH"]) + with open(DKIM_PRIVATE_KEY_PATH) as f: + DKIM_PRIVATE_KEY = f.read() + # Database DB_URI = os.environ["DB_URI"] diff --git a/app/email_utils.py b/app/email_utils.py index 7df16c21..6f74e98d 100644 --- a/app/email_utils.py +++ b/app/email_utils.py @@ -385,18 +385,19 @@ def add_dkim_signature(msg: Message, email_domain: str): # Specify headers in "byte" form # Generate message signature - sig = dkim.sign( - to_bytes(msg), - DKIM_SELECTOR, - email_domain.encode(), - DKIM_PRIVATE_KEY.encode(), - include_headers=DKIM_HEADERS, - ) - sig = sig.decode() + if DKIM_PRIVATE_KEY: + sig = dkim.sign( + to_bytes(msg), + DKIM_SELECTOR, + email_domain.encode(), + DKIM_PRIVATE_KEY.encode(), + include_headers=DKIM_HEADERS, + ) + sig = sig.decode() - # remove linebreaks from sig - sig = sig.replace("\n", " ").replace("\r", "") - msg["DKIM-Signature"] = sig[len("DKIM-Signature: ") :] + # remove linebreaks from sig + sig = sig.replace("\n", " ").replace("\r", "") + msg["DKIM-Signature"] = sig[len("DKIM-Signature: ") :] def add_or_replace_header(msg: Message, header: str, value: str): diff --git a/example.env b/example.env index b269b90f..436825c8 100644 --- a/example.env +++ b/example.env @@ -70,7 +70,7 @@ EMAIL_SERVERS_WITH_PRIORITY=[(10, "email.hostname.")] # POSTFIX_SERVER=my-postfix.com # the DKIM private key used to compute DKIM-Signature -DKIM_PRIVATE_KEY_PATH=local_data/dkim.key +# DKIM_PRIVATE_KEY_PATH=local_data/dkim.key # delete and recreate the sqlite database, for local development RESET_DB=true