From 22c2e8799a97a0e44ec7086910ea270c114a4fda Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Mon, 27 Aug 2018 09:04:08 -0400 Subject: [PATCH] 3.8.1 - Better handling of .msg files when msgconvert is not installed --- CHANGELOG.md | 5 +++++ parsedmarc/__init__.py | 9 +++++++-- setup.py | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d91bcc..3a06573 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +3.8.1 +----- + +- Better handling of `.msg` files when `msgconvert` is not installed + 3.8.0 ----- diff --git a/parsedmarc/__init__.py b/parsedmarc/__init__.py index dc3738a..368ca34 100644 --- a/parsedmarc/__init__.py +++ b/parsedmarc/__init__.py @@ -43,7 +43,7 @@ import imapclient.exceptions import dateparser import mailparser -__version__ = "3.8.0" +__version__ = "3.8.1" logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) @@ -933,7 +933,7 @@ def parse_report_email(input_, nameservers=None, timeout=6.0): with open(eml_path, "rb") as eml_file: rfc822 = eml_file.read() except FileNotFoundError as e: - raise RuntimeError( + raise FileNotFoundError( "Error running msgconvert. Please ensure it is installed\n" "sudo apt install libemail-outlook-message-perl\n" "https://github.com/mvz/email-outlook-message-perl\n\n" @@ -1017,6 +1017,11 @@ def parse_report_email(input_, nameservers=None, timeout=6.0): except (TypeError, ValueError, binascii.Error): pass + except FileNotFoundError as e: + error = 'Unable to parse message with subject "{0}": {1}' .format( + subject, e) + raise InvalidDMARCReport(error) + if result is None: error = 'Message with subject "{0}" is ' \ 'not a valid DMARC report'.format(subject) diff --git a/setup.py b/setup.py index 688281c..f24c6dd 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ from setuptools import setup from codecs import open from os import path -__version__ = "3.8.0" +__version__ = "3.8.1" description = "A Python package and CLI for parsing aggregate and " \ "forensic DMARC reports"