Rust migration Phase 1 — implements real functionality in the previously stubbed mailer-core and mailer-security crates (38 passing tests). mailer-core: Email/EmailAddress/Attachment types, RFC 5322 MIME builder, email format validation with scoring, bounce detection (14 types, 40+ regex patterns), DSN status parsing, retry delay calculation. mailer-security: DKIM signing (RSA-SHA256) and verification, SPF checking, DMARC verification with public suffix list, DNSBL IP reputation checking (10 default servers, parallel queries), all powered by mail-auth 0.7. mailer-bin: Full CLI with validate/bounce/check-ip/verify-email/dkim-sign subcommands plus --management mode for smartrust JSON-over-stdin/stdout IPC.
36 lines
829 B
Rust
36 lines
829 B
Rust
//! mailer-core: Email model, validation, and RFC 5322 primitives.
|
|
|
|
pub mod bounce;
|
|
pub mod email;
|
|
pub mod error;
|
|
pub mod mime;
|
|
pub mod validation;
|
|
|
|
// Re-exports for convenience
|
|
pub use bounce::{
|
|
detect_bounce_type, extract_bounce_recipient, is_bounce_subject, BounceCategory,
|
|
BounceDetection, BounceType,
|
|
};
|
|
pub use email::{extract_email_address, Attachment, Email, EmailAddress, Priority};
|
|
pub use error::{MailerError, Result};
|
|
pub use mime::build_rfc822;
|
|
pub use validation::{is_valid_email_format, validate_email, EmailValidationResult};
|
|
|
|
/// Re-export mailparse for MIME parsing.
|
|
pub use mailparse;
|
|
|
|
/// Crate version.
|
|
pub fn version() -> &'static str {
|
|
env!("CARGO_PKG_VERSION")
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn test_version() {
|
|
assert!(!version().is_empty());
|
|
}
|
|
}
|