From 6e2a37956cb15f0a73e4a3321e52ccbe8d51b7cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jagoda=20Estera=20=C5=9Al=C4=85zak?= <128227338+j-g00da@users.noreply.github.com> Date: Tue, 17 Feb 2026 13:00:31 +0100 Subject: [PATCH] chore(tests): Add a way to disable DKIM for tests (#50) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jagoda Ślązak --- filtermail/src/inbound.rs | 8 ++++++-- filtermail/src/main.rs | 11 ++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/filtermail/src/inbound.rs b/filtermail/src/inbound.rs index f849f0a1..a1d5b879 100644 --- a/filtermail/src/inbound.rs +++ b/filtermail/src/inbound.rs @@ -15,13 +15,15 @@ use std::str::FromStr; pub struct IncomingBeforeQueueHandler { config: Config, dkim_verifier: DkimVerifier, + skip_dkim: bool, } impl IncomingBeforeQueueHandler { - pub fn new(config: Config) -> Result { + pub fn new(config: Config, skip_dkim: bool) -> Result { Ok(Self { config, dkim_verifier: DkimVerifier::new()?, + skip_dkim, }) } } @@ -67,7 +69,9 @@ impl SmtpHandler for IncomingBeforeQueueHandler { } } AddressDomain::Name(domain) => { - self.dkim_verifier.verify(&envelope.data, &domain).await?; + if !self.skip_dkim { + self.dkim_verifier.verify(&envelope.data, &domain).await?; + } } } diff --git a/filtermail/src/main.rs b/filtermail/src/main.rs index ac30f2dc..8d5899f6 100644 --- a/filtermail/src/main.rs +++ b/filtermail/src/main.rs @@ -96,9 +96,18 @@ async fn main() { process::exit(1); } } else { + // Skip DKIM verification (used for tests). + let skip_dkim = env::var("FILTERMAIL_SKIP_DKIM") + .map(|val| val == "1" || val.eq_ignore_ascii_case("true")) + .unwrap_or(false); + + if skip_dkim { + log::warn!("DKIM verification DISABLED! This should not be used in production."); + } + let handler = Arc::new( // We want to panic here if the handler cannot be created. - IncomingBeforeQueueHandler::new(config.clone()).unwrap(), + IncomingBeforeQueueHandler::new(config.clone(), skip_dkim).unwrap(), ); let addr = format!("127.0.0.1:{}", config.filtermail_smtp_port_incoming); let max_size = config.max_message_size;