From ec6bb989f2a4f71837e3af1455e9befec421f8f1 Mon Sep 17 00:00:00 2001 From: Andreas Knuth Date: Tue, 10 Feb 2026 18:41:55 -0600 Subject: [PATCH] Fix --- email-worker/worker.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/email-worker/worker.py b/email-worker/worker.py index a1c8fc3..eb913ac 100644 --- a/email-worker/worker.py +++ b/email-worker/worker.py @@ -127,6 +127,17 @@ class MessageProcessor: # 5. PARSING & BOUNCE LOGIC try: parsed = self.parser.parse_bytes(raw_bytes) + + # --- FIX START: Sanitize Malformed Headers --- + # Fix für Microsofts <[uuid]@domain> Message-IDs, die Python crashen lassen + current_msg_id = parsed.get('Message-ID', '') + if current_msg_id and ('[' in current_msg_id or ']' in current_msg_id): + # Klammern entfernen, aber spitze Klammern behalten + clean_id = current_msg_id.replace('[', '').replace(']', '') + parsed.replace_header('Message-ID', clean_id) + log(f" 🔧 Sanitized malformed Message-ID", 'INFO', worker_name) + # --- FIX END --- + subject = parsed.get('Subject', '(no subject)') # Bounce header rewriting @@ -143,10 +154,10 @@ class MessageProcessor: else: from_addr_final = from_addr - # ⭐ HIER NEU: Marker für alle Emails von extern setzen + # Marker für alle Emails von extern setzen if not skip_rules: # Nur wenn nicht bereits processed parsed['X-SES-Worker-Processed'] = 'delivered' - raw_bytes = parsed.as_bytes() + raw_bytes = parsed.as_bytes() # <--- Hier knallte es vorher except Exception as e: # --- VERBESSERTES ERROR LOGGING ---