From 1a7c83d56517ca2ff3244192023bd32cdd401a62 Mon Sep 17 00:00:00 2001 From: "Piotr F. Mieszkowski" Date: Sat, 21 Sep 2024 14:10:29 +0200 Subject: [PATCH] Return Permanent Failure when dealing with undeliverable mail --- lacre/daemon.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lacre/daemon.py b/lacre/daemon.py index a0bf9be..7dc3b77 100644 --- a/lacre/daemon.py +++ b/lacre/daemon.py @@ -71,13 +71,17 @@ class MailEncryptionProxy: else: LOG.exception('Unexpected exception caught, bouncing message') - return xport.RESULT_TRANS_FAIL + return xport.RESULT_PERM_FAIL return xport.RESULT_OK def _send_unencrypted(self, operation, envelope: Envelope, send: xport.SendFrom): # Do not parse and re-generate the message, just send it as it is. - send(envelope.original_content, operation.recipients()) + try: + send(envelope.original_content, operation.recipients()) + except: + LOG.exception('Unencrypted delivery failed, returning PERMANENT FAILURE to sender') + raise xport.PermanentFailure() def _beginning(self, e: Envelope) -> bytes: double_eol_pos = e.original_content.find(DOUBLE_EOL_BYTES)