mirror of
https://github.com/chatmail/relay.git
synced 2026-08-11 11:00:52 +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:
committed by
GitHub
parent
4eb7e9fd63
commit
6e2a37956c
@@ -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<Self, crate::error::Error> {
|
||||
pub fn new(config: Config, skip_dkim: bool) -> Result<Self, crate::error::Error> {
|
||||
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?;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user