[docs]def get_dmarc_reports_from_mbox(input_, nameservers=None, dns_timeout=2.0,
strip_attachment_payloads=False,
ip_db_path=None,
+
always_use_local_files=False,
+
reverse_dns_map_path=None,
+
reverse_dns_map_url=None,
offline=False):
"""Parses a mailbox in mbox format containing e-mails with attached
DMARC reports
@@ -1388,6 +1391,9 @@
dns_timeout (float): Sets the DNS timeout in seconds
strip_attachment_payloads (bool): Remove attachment payloads from
forensic report results
+
always_use_local_files (bool): Do not download files
+
reverse_dns_map_path (str): Path to a reverse DNS map file
+
reverse_dns_map_url (str): URL to a reverse DNS map file
ip_db_path (str): Path to a MMDB file from MaxMind or DBIP
offline (bool): Do not make online queries for geolocation or DNS
@@ -1412,12 +1418,16 @@
msg_content = mbox.get_string(message_key)
try:
sa = strip_attachment_payloads
-
parsed_email = parse_report_email(msg_content,
-
ip_db_path=ip_db_path,
-
offline=offline,
-
nameservers=nameservers,
-
dns_timeout=dns_timeout,
-
strip_attachment_payloads=sa)
+
parsed_email = parse_report_email(
+
msg_content,
+
ip_db_path=ip_db_path,
+
always_use_local_files=always_use_local_files,
+
reverse_dns_map_path=reverse_dns_map_path,
+
reverse_dns_map_url=reverse_dns_map_url,
+
offline=offline,
+
nameservers=nameservers,
+
dns_timeout=dns_timeout,
+
strip_attachment_payloads=sa)
if parsed_email["report_type"] == "aggregate":
aggregate_reports.append(parsed_email["report"])
elif parsed_email["report_type"] == "forensic":
@@ -1439,6 +1449,9 @@
delete=False,
test=False,
ip_db_path=None,
+
always_use_local_files=False,
+
reverse_dns_map_path=None,
+
reverse_dns_map_url=None,
offline=False,
nameservers=None,
dns_timeout=6.0,
@@ -1456,6 +1469,9 @@
delete (bool): Delete messages after processing them
test (bool): Do not move or delete messages after processing them
ip_db_path (str): Path to a MMDB file from MaxMind or DBIP
+
always_use_local_files (bool): Do not download files
+
reverse_dns_map_path (str): Path to a reverse DNS map file
+
reverse_dns_map_url (str): URL to a reverse DNS map file
offline (bool): Do not query online for geolocation or DNS
nameservers (list): A list of DNS nameservers to query
dns_timeout (float): Set the DNS query timeout
@@ -1519,13 +1535,17 @@
msg_content = connection.fetch_message(msg_uid)
try:
sa = strip_attachment_payloads
-
parsed_email = parse_report_email(msg_content,
-
nameservers=nameservers,
-
dns_timeout=dns_timeout,
-
ip_db_path=ip_db_path,
-
offline=offline,
-
strip_attachment_payloads=sa,
-
keep_alive=connection.keepalive)
+
parsed_email = parse_report_email(
+
msg_content,
+
nameservers=nameservers,
+
dns_timeout=dns_timeout,
+
ip_db_path=ip_db_path,
+
always_use_local_files=always_use_local_files,
+
reverse_dns_map_path=reverse_dns_map_path,
+
reverse_dns_map_url=reverse_dns_map_url,
+
offline=offline,
+
strip_attachment_payloads=sa,
+
keep_alive=connection.keepalive)
if parsed_email["report_type"] == "aggregate":
aggregate_reports.append(parsed_email["report"])
aggregate_report_msg_uids.append(msg_uid)
@@ -1646,6 +1666,9 @@
strip_attachment_payloads=strip_attachment_payloads,
results=results,
ip_db_path=ip_db_path,
+
always_use_local_files=always_use_local_files,
+
reverse_dns_map_path=reverse_dns_map_path,
+
reverse_dns_map_url=reverse_dns_map_url,
offline=offline
)
@@ -1657,6 +1680,9 @@
reports_folder="INBOX",
archive_folder="Archive", delete=False, test=False,
check_timeout=30, ip_db_path=None,
+
always_use_local_files=False,
+
reverse_dns_map_path=None,
+
reverse_dns_map_url=None,
offline=False, nameservers=None,
dns_timeout=6.0, strip_attachment_payloads=False,
batch_size=None):
@@ -1674,6 +1700,9 @@
check_timeout (int): Number of seconds to wait for a IMAP IDLE response
or the number of seconds until the next mail check
ip_db_path (str): Path to a MMDB file from MaxMind or DBIP
+
always_use_local_files (bool): Do not download files
+
reverse_dns_map_path (str): Path to a reverse DNS map file
+
reverse_dns_map_url (str): URL to a reverse DNS map file
offline (bool): Do not query online for geolocation or DNS
nameservers (list): A list of one or more nameservers to use
(Cloudflare's public DNS resolvers by default)
@@ -1685,18 +1714,22 @@
def check_callback(connection):
sa = strip_attachment_payloads
-
res = get_dmarc_reports_from_mailbox(connection=connection,
-
reports_folder=reports_folder,
-
archive_folder=archive_folder,
-
delete=delete,
-
test=test,
-
ip_db_path=ip_db_path,
-
offline=offline,
-
nameservers=nameservers,
-
dns_timeout=dns_timeout,
-
strip_attachment_payloads=sa,
-
batch_size=batch_size,
-
create_folders=False)
+
res = get_dmarc_reports_from_mailbox(
+
connection=connection,
+
reports_folder=reports_folder,
+
archive_folder=archive_folder,
+
delete=delete,
+
test=test,
+
ip_db_path=ip_db_path,
+
always_use_local_files=always_use_local_files,
+
reverse_dns_map_path=reverse_dns_map_path,
+
reverse_dns_map_url=reverse_dns_map_url,
+
offline=offline,
+
nameservers=nameservers,
+
dns_timeout=dns_timeout,
+
strip_attachment_payloads=sa,
+
batch_size=batch_size,
+
create_folders=False)
callback(res)
mailbox_connection.watch(check_callback=check_callback,
diff --git a/_modules/parsedmarc/elastic.html b/_modules/parsedmarc/elastic.html
index 445054b..e61c856 100644
--- a/_modules/parsedmarc/elastic.html
+++ b/_modules/parsedmarc/elastic.html
@@ -3,7 +3,7 @@
-
parsedmarc.elastic — parsedmarc 8.11.0 documentation
+
parsedmarc.elastic — parsedmarc 8.12.0 documentation
@@ -35,7 +35,7 @@
parsedmarc
- 8.11.0
+ 8.12.0