14 个版本
0.3.0 | 2023年9月21日 |
---|---|
0.2.6 | 2023年3月23日 |
0.2.5 | 2022年10月12日 |
0.2.4 | 2022年9月14日 |
0.1.2 | 2022年1月23日 |
#110 在 电子邮件 类别中
用于 dmarc
85KB
2K SLoC
cfdkim
DKIM (RFC6376) 实现
特性
验证电子邮件签名
示例
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());
verify_email
参数如下
签名电子邮件
示例
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: ...
请参阅 SignerBuilder 对象的文档以获取更多信息。
生成测试 DKIM 密钥
使用 OpenDKIM
opendkim-genkey \
--testmode \
--domain=example.com \
--selector=2022 \
--nosubdomains
依赖项
~16–24MB
~432K SLoC