Record DMARC report errors, allow additional options for DKIM policy override.

This commit is contained in:
David Baer
2020-01-23 12:50:28 -05:00
parent 00a988744e
commit 9491d5d25d
3 changed files with 21 additions and 9 deletions

View File

@@ -24,13 +24,15 @@ def parse_metadata(tree):
date_begin = datetime.fromtimestamp(int(date_begin))
date_end, = tree.xpath('date_range/end/text()')
date_end = datetime.fromtimestamp(int(date_end))
errors = [ ReportError(txt) for txt in tree.xpath('errors/text()') ]
return Report(
org_name=org_name,
email=email,
extra_contact_info=extra_contact_info,
report_id=report_id,
date_begin=date_begin,
date_end=date_end
date_end=date_end,
errors=errors
)
def scoop_elements(obj, tree, *elements):
@@ -64,10 +66,7 @@ def parse_report(f):
scoop_elements(record, record_node.xpath('./identifiers')[0], 'envelope_to', 'header_from')
for dkim_node in record_node.xpath('./auth_results/dkim'):
dkim = DKIMResult()
scoop_elements(dkim, dkim_node, 'domain', 'result', 'human_result')
t = dkim_node.xpath('./selector/text()')
if len(t) > 0:
dkim.human_result = t[0]
scoop_elements(dkim, dkim_node, 'domain', 'selector', 'result', 'human_result')
record.dkim_results.append(dkim)
for spf_node in record_node.xpath('./auth_results/spf'):
spf = SPFResult()