mirror of
https://github.com/chatmail/relay.git
synced 2026-08-22 00:03:14 +00:00
chore(tests): Add a way to disable DKIM for tests (#50)
Signed-off-by: Jagoda Ślązak <jslazak@jslazak.com>
This commit is contained in:
@@ -15,13 +15,15 @@ use std::str::FromStr;
|
|||||||
pub struct IncomingBeforeQueueHandler {
|
pub struct IncomingBeforeQueueHandler {
|
||||||
config: Config,
|
config: Config,
|
||||||
dkim_verifier: DkimVerifier,
|
dkim_verifier: DkimVerifier,
|
||||||
|
skip_dkim: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl IncomingBeforeQueueHandler {
|
impl IncomingBeforeQueueHandler {
|
||||||
pub fn new(config: Config) -> Result<Self, crate::error::Error> {
|
pub fn new(config: Config, skip_dkim: bool) -> Result<Self, crate::error::Error> {
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
config,
|
config,
|
||||||
dkim_verifier: DkimVerifier::new()?,
|
dkim_verifier: DkimVerifier::new()?,
|
||||||
|
skip_dkim,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -67,7 +69,9 @@ impl SmtpHandler for IncomingBeforeQueueHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
AddressDomain::Name(domain) => {
|
AddressDomain::Name(domain) => {
|
||||||
self.dkim_verifier.verify(&envelope.data, &domain).await?;
|
if !self.skip_dkim {
|
||||||
|
self.dkim_verifier.verify(&envelope.data, &domain).await?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-1
@@ -96,9 +96,18 @@ async fn main() {
|
|||||||
process::exit(1);
|
process::exit(1);
|
||||||
}
|
}
|
||||||
} else {
|
} 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(
|
let handler = Arc::new(
|
||||||
// We want to panic here if the handler cannot be created.
|
// 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 addr = format!("127.0.0.1:{}", config.filtermail_smtp_port_incoming);
|
||||||
let max_size = config.max_message_size;
|
let max_size = config.max_message_size;
|
||||||
|
|||||||
Reference in New Issue
Block a user