mirror of
https://github.com/mailscope/kumomta.git
synced 2026-10-28 09:16:15 +00:00
2d627b92c700fc950ca75b150a7b32970b828080
Header selection routing was not handling correctly duplicate headers. This is valid, according to the spec, and the mail headers should be chosen last to first.
cfdkim
DKIM (RFC6376) implementation
Features
Verifying email signatures
Example:
let res: DKIMResult = cfdkim::verify_email(&logger, &from_domain, &parsed_email).await?;
if let Some(err) = &res.error() {
error!(logger, "dkim verify fail: {}", err);
}
println!("dkim={}", res.with_detail());
The verify_email arguments are the following:
Signing an email
Example:
let private_key =
rsa::RsaPrivateKey::read_pkcs1_pem_file(Path::new("./test/keys/2022.private"))?;
let signer = SignerBuilder::new()
.with_signed_headers(&["From", "Subject"])?
.with_private_key(private_key)
.with_selector("2020")
.with_logger(&logger)
.with_signing_domain("example.com")
.build()?;
let signature = signer.sign(&email)?;
println!("{}", signature); // DKIM-Signature: ...
See the SignerBuilder object documentation for more information.
Generate a test DKIM key
Using OpenDKIM:
opendkim-genkey \
--testmode \
--domain=example.com \
--selector=2022 \
--nosubdomains
Description
The first Open-Source high-performance MTA developed from the ground-up for high-volume email sending environments.
37 MiB
Languages
Rust
91.8%
Lua
6.3%
Python
0.9%
Shell
0.8%
JavaScript
0.1%