forward raw email

This commit is contained in:
Andreas Knuth 2026-02-09 14:04:00 -06:00
parent a593db160b
commit d9b6399dc7
1 changed files with 27 additions and 25 deletions

View File

@ -134,6 +134,7 @@ class RulesProcessor:
except Exception as e:
log(f"⚠ OOO reply failed to {sender_addr}: {e}", 'ERROR', worker_name)
def _handle_forwards(
self,
recipient: str,
@ -143,25 +144,20 @@ class RulesProcessor:
domain: str,
worker_name: str,
metrics_callback=None,
rule: dict = None # NEU
rule: dict = None
):
"""Handle email forwarding"""
# NEU: SMTP Override aus Rule lesen
smtp_override = None
if rule:
smtp_override = rule.get('forward_smtp_override')
for forward_to in forwards:
try:
fwd_msg = self._create_forward_message(
parsed, recipient, forward_to, original_from
)
fwd_bytes = fwd_msg.as_bytes()
# NEU: Legacy SMTP Override (Migration)
if smtp_override:
# Migration: Original-Mail unverändert weiterleiten
raw_bytes = parsed.as_bytes()
success = self._send_via_legacy_smtp(
recipient, forward_to, fwd_bytes,
recipient, forward_to, raw_bytes,
smtp_override, worker_name
)
if success:
@ -171,8 +167,14 @@ class RulesProcessor:
else:
log(f"⚠ Legacy SMTP forward failed to {forward_to}",
'WARNING', worker_name)
else:
# Normaler Forward (neue FWD-Message)
fwd_msg = self._create_forward_message(
parsed, recipient, forward_to, original_from
)
fwd_bytes = fwd_msg.as_bytes()
elif is_internal_address(forward_to):
if is_internal_address(forward_to):
success = self._send_internal_email(
recipient, forward_to, fwd_bytes, worker_name
)