mirror of
https://github.com/domainaware/parsedmarc.git
synced 2026-02-17 07:03:58 +00:00
8.18.8
- Fix parsing emails with an uncompressed aggregate report attachment (Closes #607) - Add `--no-prettify-json` CLI option (PR #617)
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -142,4 +142,6 @@ scratch.py
|
||||
|
||||
parsedmarc/resources/maps/base_reverse_dns.csv
|
||||
parsedmarc/resources/maps/unknown_base_reverse_dns.csv
|
||||
parsedmarc/resources/maps/sus_domains.csv
|
||||
parsedmarc/resources/maps/unknown_domains.txt
|
||||
*.bak
|
||||
|
||||
16
.vscode/launch.json
vendored
16
.vscode/launch.json
vendored
@@ -11,6 +11,22 @@
|
||||
"program": "${file}",
|
||||
"console": "integratedTerminal"
|
||||
},
|
||||
{
|
||||
"name": "sample.eml",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"module": "parsedmarc.cli",
|
||||
"args": ["samples/private/sample.eml"]
|
||||
},
|
||||
{
|
||||
"name": "find_sus_domains.py",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"program": "find_sus_domains.py",
|
||||
"args": ["-i", "unknown_domains.txt", "-o", "sus_domains.csv"],
|
||||
"cwd": "${workspaceFolder}/parsedmarc/resources/maps",
|
||||
"console": "integratedTerminal"
|
||||
},
|
||||
{
|
||||
"name": "sortlists.py",
|
||||
"type": "debugpy",
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
8.18.8
|
||||
------
|
||||
|
||||
- Fix parsing emails with an uncompressed aggregate report attachment (Closes #607)
|
||||
- Add `--no-prettify-json` CLI option (PR #617)
|
||||
|
||||
8.18.7
|
||||
------
|
||||
|
||||
|
||||
@@ -1261,28 +1261,28 @@ def parse_report_email(
|
||||
payload = b64decode(payload)
|
||||
if payload.startswith(MAGIC_ZIP) or payload.startswith(MAGIC_GZIP):
|
||||
payload = extract_report(payload)
|
||||
ns = nameservers
|
||||
if payload.startswith("{"):
|
||||
smtp_tls_report = parse_smtp_tls_report_json(payload)
|
||||
result = OrderedDict(
|
||||
[("report_type", "smtp_tls"), ("report", smtp_tls_report)]
|
||||
)
|
||||
return result
|
||||
aggregate_report = parse_aggregate_report_xml(
|
||||
payload,
|
||||
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=ns,
|
||||
timeout=dns_timeout,
|
||||
keep_alive=keep_alive,
|
||||
)
|
||||
ns = nameservers
|
||||
if payload.startswith("{"):
|
||||
smtp_tls_report = parse_smtp_tls_report_json(payload)
|
||||
result = OrderedDict(
|
||||
[("report_type", "aggregate"), ("report", aggregate_report)]
|
||||
[("report_type", "smtp_tls"), ("report", smtp_tls_report)]
|
||||
)
|
||||
return result
|
||||
aggregate_report = parse_aggregate_report_xml(
|
||||
payload,
|
||||
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=ns,
|
||||
timeout=dns_timeout,
|
||||
keep_alive=keep_alive,
|
||||
)
|
||||
result = OrderedDict(
|
||||
[("report_type", "aggregate"), ("report", aggregate_report)]
|
||||
)
|
||||
return result
|
||||
|
||||
except (TypeError, ValueError, binascii.Error):
|
||||
pass
|
||||
|
||||
@@ -103,7 +103,9 @@ def _main():
|
||||
|
||||
def process_reports(reports_):
|
||||
indent_value = 2 if opts.prettify_json else None
|
||||
output_str = "{0}\n".format(json.dumps(reports_, ensure_ascii=False, indent=indent_value))
|
||||
output_str = "{0}\n".format(
|
||||
json.dumps(reports_, ensure_ascii=False, indent=indent_value)
|
||||
)
|
||||
|
||||
if not opts.silent:
|
||||
print(output_str)
|
||||
@@ -483,7 +485,7 @@ def _main():
|
||||
"--no-prettify-json",
|
||||
action="store_false",
|
||||
dest="prettify_json",
|
||||
help="output JSON in a single line without indentation"
|
||||
help="output JSON in a single line without indentation",
|
||||
)
|
||||
arg_parser.add_argument("-v", "--version", action="version", version=__version__)
|
||||
|
||||
@@ -625,7 +627,7 @@ def _main():
|
||||
webhook_aggregate_url=None,
|
||||
webhook_forensic_url=None,
|
||||
webhook_smtp_tls_url=None,
|
||||
webhook_timeout=60
|
||||
webhook_timeout=60,
|
||||
)
|
||||
args = arg_parser.parse_args()
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
__version__ = "8.18.7"
|
||||
__version__ = "8.18.8"
|
||||
USER_AGENT = f"parsedmarc/{__version__}"
|
||||
|
||||
Reference in New Issue
Block a user