9 releases

0.1.8 Sep 21, 2023
0.1.7 Mar 23, 2023
0.1.6 Sep 14, 2022
0.1.5 Jul 21, 2022
0.1.1 Jan 25, 2022

#60 in Email

MIT license

29KB
667 lines

dmarc

DMARC (RFC7489) implementation

Features

Load the policy for a domain

let policy: Option<dmarc::Policy> = dmarc::load_policy(&logger, &from_domain).await?;

The load_policy arguments are the following:

  • logger: slog::Logger
  • from_domain: &str (RFC5322.From's domain)

Apply a policy

let dkim_result: cfdkim::DKIMResult = ...;
let spf_result: SPFResult = ...;

let ctx = dmarc::PolicyContext {
    from_domain: &from_domain,
    logger: &logger,
    dkim_result,
    spf_result,
};

let res: DMARCResult = policy.apply(&ctx);
println!("dmarc={}", res.to_str());

dkim_result is the result of verifying DKIM using the cfdkim crate. In the future it should be a trait.

spf_result is the result of verifying SPF.

Sending feedback report

Not planned yet.

Dependencies

~20–28MB
~565K SLoC