A Rust library for email authentication and reporting, supporting DKIM, ARC, SPF, DMARC, ARF, and SMTP TLS Reporting.
mail-auth is a comprehensive email authentication and reporting library written in Rust. It provides robust implementations of key email security protocols including DKIM, ARC, SPF, and DMARC to help verify sender identity, ensure message integrity, and generate compliance reports. The library is designed to be fast, safe, and correct while supporting all major relevant RFCs.
Developers building email servers, mail transfer agents (MTAs), email security tools, or applications that need to sign, verify, or report on email authentication protocols in a Rust environment.
Developers choose mail-auth for its comprehensive, standards-compliant implementation of all major email authentication protocols in a single, performant Rust library, with a focus on safety and correctness. Its support for key generation, failure reporting, and multiple signature algorithms provides a complete solution over piecing together separate libraries.
DKIM, ARC, SPF and DMARC library for Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements all major email authentication standards including DKIM, ARC, SPF, DMARC, ARF, and SMTP TLS reporting, as listed in the README's conformed RFCs section, providing a one-stop solution.
Supports ED25519-SHA256 alongside RSA algorithms for DKIM signing and verification, offering forward-looking security based on RFC 8032, as shown in the usage examples.
Includes a full test suite and fuzzing support with cargo-fuzz, emphasizing correctness and reliability in handling complex email authentication scenarios.
Provides clear code snippets in the README for common tasks like DKIM verification and ARC sealing, aiding quick integration and reducing learning time.
Relies on DNS lookups for authentication (e.g., for DKIM keys and SPF records), introducing potential latency and failure points, as highlighted in examples using Cloudflare DNS.
Being written solely in Rust restricts use to Rust-based projects, with no mention of language bindings, which can hinder adoption in polyglot or legacy systems.
Requires managing keys, policies, and report generation manually, demanding significant configuration and deep understanding of email protocols, despite the library's tools.