This commit is contained in:
Sean Whalen
2018-09-03 22:07:08 -04:00
parent 8afa271cb7
commit 7c6a0b185a
3 changed files with 19 additions and 4 deletions
+6
View File
@@ -1,3 +1,9 @@
3.8.2
-----
- Fix `nameservers` option (mikesiegel)
- Move or delete invalid report emails in an IMAP inbox (closes issue #7)
3.8.1
-----
+12 -3
View File
@@ -43,7 +43,7 @@ import imapclient.exceptions
import dateparser
import mailparser
__version__ = "3.8.1"
__version__ = "3.8.2"
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
@@ -492,8 +492,8 @@ def parse_aggregate_report_xml(xml, nameservers=None, timeout=6.0):
timeout=timeout))
else:
records.append(_parse_report_record(report["record"]),
nameservers=nameservers)
records.append(_parse_report_record(report["record"],
nameservers=nameservers))
new_report["records"] = records
@@ -1106,6 +1106,7 @@ def get_dmarc_reports_from_inbox(host, user, password,
forensic_report_msg_uids = []
aggregate_reports_folder = "{0}/Aggregate".format(archive_folder)
forensic_reports_folder = "{0}/Forensic".format(archive_folder)
invalid_reports_folder = "{0}/Invalid".format(archive_folder)
try:
server = imapclient.IMAPClient(host, use_uid=True)
@@ -1128,6 +1129,8 @@ def get_dmarc_reports_from_inbox(host, user, password,
server.create_folder(aggregate_reports_folder)
if not server.folder_exists(forensic_reports_folder):
server.create_folder(forensic_reports_folder)
if not server.folder_exists(invalid_reports_folder):
server.create_folder(invalid_reports_folder)
server.select_folder(reports_folder)
messages = server.search()
for message_uid in messages:
@@ -1147,6 +1150,12 @@ def get_dmarc_reports_from_inbox(host, user, password,
forensic_report_msg_uids.append(message_uid)
except InvalidDMARCReport as error:
logger.warning(error.__str__())
if not test:
if delete:
server.add_flags([message_uid], [imapclient.DELETED])
server.expunge()
else:
server.move([message_uid], invalid_reports_folder)
if not test:
if delete:
+1 -1
View File
@@ -14,7 +14,7 @@ from setuptools import setup
from codecs import open
from os import path
__version__ = "3.8.1"
__version__ = "3.8.2"
description = "A Python package and CLI for parsing aggregate and " \
"forensic DMARC reports"