mirror of
https://github.com/domainaware/parsedmarc.git
synced 2026-05-24 04:45:24 +00:00
3.7.4 - Fix dovecot IMAP server support (closes #5)
Use `.` instead of `/` as the IMAP folder hierarchy separator https://stackoverflow.com/questions/51951887/what-is-the-proper-way-to-create-imap-subfolders-using-imapclient-for-python/51952493#51952493
This commit is contained in:
+3
-3
@@ -1,9 +1,9 @@
|
||||
3.7.4
|
||||
-----
|
||||
|
||||
- Workaround older versions of the dovecot mail server not reporting existing
|
||||
folders correctly (#5)
|
||||
'
|
||||
- Use `.` instead of `/` as the IMAP folder hierarchy separator - fixes
|
||||
dovecot support (#5)
|
||||
|
||||
3.7.3
|
||||
-----
|
||||
|
||||
|
||||
@@ -1003,7 +1003,7 @@ def parse_report_email(input_, nameservers=None, timeout=6.0):
|
||||
timeout=timeout)
|
||||
result = OrderedDict([("report_type", "aggregate"),
|
||||
("report", aggregate_report)])
|
||||
except (TypeError, binascii.Error):
|
||||
except (TypeError, ValueError, binascii.Error):
|
||||
pass
|
||||
|
||||
if result is None:
|
||||
@@ -1087,19 +1087,19 @@ def get_dmarc_reports_from_inbox(host, user, password,
|
||||
forensic_reports = []
|
||||
aggregate_report_msg_uids = []
|
||||
forensic_report_msg_uids = []
|
||||
aggregate_reports_folder = "{0}/Aggregate".format(archive_folder)
|
||||
forensic_reports_folder = "{0}/Forensic".format(archive_folder)
|
||||
aggregate_reports_folder = "{0}.Aggregate".format(archive_folder)
|
||||
forensic_reports_folder = "{0}.Forensic".format(archive_folder)
|
||||
|
||||
try:
|
||||
server = imapclient.IMAPClient(host, use_uid=True)
|
||||
server.login(user, password)
|
||||
server.select_folder(reports_folder)
|
||||
if not server.folder_exists(archive_folder):
|
||||
server.create_folder(archive_folder)
|
||||
if not server.folder_exists(aggregate_reports_folder):
|
||||
server.create_folder(aggregate_reports_folder)
|
||||
if not server.folder_exists(forensic_reports_folder):
|
||||
server.create_folder(forensic_reports_folder)
|
||||
server.select_folder(reports_folder)
|
||||
messages = server.search()
|
||||
for message_uid in messages:
|
||||
raw_msg = server.fetch(message_uid,
|
||||
|
||||
+2
-9
@@ -175,15 +175,8 @@ def _main():
|
||||
forensic_reports += reports["forensic_reports"]
|
||||
|
||||
except IMAPError as error:
|
||||
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)
|
||||
logger.error("IMAP Error: {0}".format(error.__str__()))
|
||||
exit(1)
|
||||
|
||||
results = OrderedDict([("aggregate_reports", aggregate_reports),
|
||||
("forensic_reports", forensic_reports)])
|
||||
|
||||
Reference in New Issue
Block a user