The result of a DMARC check (RFC 9989).
Fields:
:result::pass,:fail,:none,:temperroror:permerror:reason: why it did not pass, as an atom. See the README:from_domain: the domain of theFrom:address, in A-labels:organizational_domain: the From domain's organizational domain:record_domain: where the record that applies was found:record: theMailAuth.DMARC.Recordthat applies:policy: the policy that applies to this domain:p,spornp:testing?: true when the record hast=y:disposition: what the domain asks a receiver to do with this message::noneon a pass, otherwise the policy, one step lower whentesting?. The library reports it and never acts on it:aligned_by: which checks aligned with the From domain,:dkimand:spf:dkim_domain: thed=of the aligned DKIM signature, or of the first that passed:spf_domain: the domain SPF checked:warnings: such as:missing_policy
Summary
Types
@type t() :: %MailAuth.DMARC.Result{ aligned_by: [:dkim | :spf], disposition: MailAuth.DMARC.Record.policy(), dkim_domain: String.t() | nil, from_domain: String.t() | nil, organizational_domain: String.t() | nil, policy: MailAuth.DMARC.Record.policy() | nil, reason: atom() | nil, record: MailAuth.DMARC.Record.t() | nil, record_domain: String.t() | nil, result: :pass | :fail | :none | :temperror | :permerror, spf_domain: String.t() | nil, testing?: boolean(), warnings: [atom()] }