From 5eb533e2a5f7fe8dfce2f1e07beb4a0a626fd3f5 Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Wed, 24 Oct 2018 14:48:51 -0400 Subject: [PATCH] Better error handling --- parsedmarc/utils.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/parsedmarc/utils.py b/parsedmarc/utils.py index f08fc8c..2fb16e5 100644 --- a/parsedmarc/utils.py +++ b/parsedmarc/utils.py @@ -474,12 +474,17 @@ def parse_email(data, strip_attachment_payloads=False): for attachment in parsed_email["attachments"]: if "payload" in attachment: payload = attachment["payload"] - if "content_transfer_encoding" in attachment: - if attachment["content_transfer_encoding"] == "base64": - payload = decode_base64(payload) - else: - payload = str.encode(payload) - attachment["sha256"] = hashlib.sha256(payload).hexdigest() + try: + if "content_transfer_encoding" in attachment: + if attachment["content_transfer_encoding"] == "base64": + payload = decode_base64(payload) + else: + payload = str.encode(payload) + attachment["sha256"] = hashlib.sha256(payload).hexdigest() + except Exception as e: + logger.debug("Unable to decode attachment: {0}".format( + e.__str__() + )) if strip_attachment_payloads: for attachment in parsed_email["attachments"]: if "payload" in attachment: