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