Data Structure
feedback => {
version => 1, # decimal
report_metadata => { # info about DMARC reporter
report_id => string
org_name => 'Art Farm',
email => 'no-reply@theartfarm.com',
extra_contact_info => string # min 0
date_range => {
begin => epoch time,
end => epoch time,
},
error => string, # min 0, max unbounded
},
policy_published => {
domain => string
adkim => r, s
aspf => r, s
p => none, quarantine, reject
sp => none, quarantine, reject
pct => integer
},
record => {
row => {
source_ip => # IPAddress
count => # integer
policy_evaluated => { # min=0
disposition => # none, quarantine, reject
dkim => # pass, fail
spf => # pass, fail
reason => { # min 0, max unbounded
type => # forwarded sampled_out ...
comment => # string, min 0
},
}
},
identifiers => {
envelope_to min=0
envelope_from min=1
header_from min=1
},
auth_results => {
spf => { # min 1, max unbounded
domain => # min 1
scope => # helo, mfrom - min 1
result => # none neutral ...
} # ( unknown -> temperror, error -> permerror )
dkim => { # min 0, max unbounded
domain => , # the d= parameter in the signature
selector => , # min 0
result => , # none pass fail policy ...
human_result => # min 0
},
},
},
};