From 775841124424cfcbf4e5d30e4c693544948e033f Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Tue, 21 Aug 2018 03:47:04 -0400 Subject: [PATCH] Workaround for dovecot mail server bug (issue #3) --- CHANGELOG.md | 6 ++++++ parsedmarc/__init__.py | 2 +- parsedmarc/cli.py | 11 +++++++++-- setup.py | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a935322..bfe0c66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +3.7.4 +----- + +- Workaround older versions of the dovecot mail server not reporting existing +folders correctly (#5) +' 3.7.3 ----- diff --git a/parsedmarc/__init__.py b/parsedmarc/__init__.py index de1f9c9..8b12fcf 100644 --- a/parsedmarc/__init__.py +++ b/parsedmarc/__init__.py @@ -43,7 +43,7 @@ import imapclient.exceptions import dateparser import mailparser -__version__ = "3.7.3" +__version__ = "3.7.4" logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) diff --git a/parsedmarc/cli.py b/parsedmarc/cli.py index 831d13a..d6dc459 100644 --- a/parsedmarc/cli.py +++ b/parsedmarc/cli.py @@ -175,8 +175,15 @@ def _main(): forensic_reports += reports["forensic_reports"] except IMAPError as error: - logger.error("IMAP Error: {0}".format(error.__str__())) - exit(1) + error = error.__str__() + if "ALREADYEXISTS" in error: + # Workaround for old versions of the dovecot mail server + # that do not respond correctly when we tested for an existing + # folder + pass + else: + logger.error("IMAP Error: {0}".format(error)) + exit(1) results = OrderedDict([("aggregate_reports", aggregate_reports), ("forensic_reports", forensic_reports)]) diff --git a/setup.py b/setup.py index 20b7ab2..e92da9c 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.7.3" +__version__ = "3.7.4" description = "A Python package and CLI for parsing aggregate and " \ "forensic DMARC reports"